2013-09-26 2 views
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 
     }); 
    }); 

ответ

0

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

$(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 (ваше предложение) Нет предупреждения в closeclick для меня !! – Bertaud

0

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

$(document).on('click', '#okButton', function() { 
    //action 
}); 
Смежные вопросы