2013-03-20 3 views
0

Я создаю этот маркер, и я хотел бы присоединить и обработчик к маркеру и один на объект внутри информационного окна показал, когда я нажимаю на маркер:google.maps.event.addListener и падение вызывает

var marker = new google.maps.Marker({ 
    position: posizione, 
    map: map, 
    title: "Title" 
}); 

markerClick = function() { 
    templateFinestra.find('.titolo').html("New Title"); 
    var prova = templateFinestra.find('.myLink'); 
    google.maps.event.addDomListener(prova, 'click', alert("Hello")); 

    infoWindow.setContent(templateFinestra.html()); 
    infoWindow.open(map, marker);  
}; 

google.maps.event.addListener(marker, 'click', markerClick); 

но когда я нажимаю на маркер, я вижу предупреждение! Зачем? И как я могу создать 2 отдельных обработчика? (один для маркера, один для ссылки infowindow, открытый при нажатии маркера).

ответ

1

Потому что вы выполняете его немедленно и предоставляете его как функцию (а это не так).

google.maps.event.addDomListener(prova, 'click', function(){ 
    alert("Hello") 
}); 
+0

Хм, вы правы! Но теперь, если я нажимаю на 'prova', ничего не происходит! – markzzz

+0

Вы уничтожаете событие, когда вызываете 'templateFinestra.html()', удаляете '.html()'. Если это все еще не работает, вам необходимо привязать событие после открытия infoWindow в содержимом infoWindow. –

+0

? Но мне нужно разместить этот код внутри infowindow. Если я удалю .html(), он ничего не добавит – markzzz

Смежные вопросы