Как проверить состояние кнопки в информационном окне?

0

Когда я нажимаю на маркер, я показываю информационное окно с двумя полями ввода и одной кнопкой:
Когда я закрываю информационное окно, я хотел бы знать, была ли нажата кнопка или нет.
Как мне это сделать?

google.maps.event.addListener(marker[i],"click", function()
    { 
        html = "Name: " + "<input type='text' id='name' />";
        html += "Firstname: " + "<input type='text' id='firstname' />";
        html += "<input type='button' id='okButton' value='OK' />";
        infoWindow[i].setContent(html);
        infoWindow[i].open(map,marker[i]);    
    });  
google.maps.event.addListener(infoWindow[i],'closeclick',function ()
    {  
        //action when the ok button was pressed or not
        //this code doesn't work
        $('#okButton').button().click(function()
        {
            //action
        });
    });
Теги:
google-maps-api-3

2 ответа

0
Лучший ответ

Используйте $.on() для наблюдения за событием клика маркера (Примечание: вы не можете напрямую присоединить событие, потому что кнопка доступна только после того, как событие domready было запущено.

$(document ).on( "click", "#okButton", function() {
  $(this).data('clicked',true);
});

.... он установил data -property для кнопки, вы можете получить ее позже, чтобы определить, была ли нажата кнопка:

google.maps.event.addListener(infoWindow[i],'closeclick',function (){  
    if($("#okButton").data('clicked')){
      alert('do something');
    }
});
  • 0
    как это?: $ (документ) .ready (...). on (ваше предложение) Нет оповещений в тесном щелчке для меня!
0

$('#okButton').button().click(function() это неправильный способ обработки события клика. Также вы динамически добавляете кнопку DOM.. Замените это как

$(document).on('click', '#okButton', function() {
    //action
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню