Не удается добавить прослушиватель DOM Google Maps к элементу, созданному с помощью jQuery - PullRequest
0 голосов
/ 11 июля 2010

У меня есть следующий скрипт, который создает div, добавляет прослушиватель DOM Google Maps и добавляет его к другому div с другим встроенным методом манипуляции DOM в JavaScript:

var div = document.createElement('div');
var html = '<b>' + string_of_text + '</b>';
div.innerHTML = html;
google.maps.event.addDomListener(div, 'click', function() {
    google.maps.event.trigger(marker, 'click');
});
document.getElementById('sidebar').appendChild(div);

Пока все хорошо. Когда страница загружается, событие щелчка маркера запускается нажатием кнопки div.

Однако, когда я пытаюсь выполнить то же самое с помощью следующего кода jQuery, div добавляется, и все загружается, но при нажатии на div не вызывается событие clicked

var div = $("<div><b>"+string_of_text+"</b></div>");
google.maps.event.addDomListener(div, 'click', function() {
    google.maps.event.trigger(marker, 'click');
});
$("#sidebar").append(div);

Есть ли способ использовать jQuery для создания элемента DOM и предоставить ему прослушиватель DOM для Google Maps?

1 Ответ

1 голос
/ 11 июля 2010

Вам нужно

google.maps.event.addDomListener(div[0], 'click', ...  // or div.get(0)

Чтобы передать элемент, а не объект jQuery . (см. jQuery get)

Также вы можете захотеть:

$("#sidebar").append(div);

вместо

$("#sidebar").append(sidebarEntry);

Я не знаю, откуда появляется SidebarEntry.

...