我有以下创建div的脚本,添加了Google Maps DOM侦听器,并使用JavaScript的内置DOM操作方法将其附加到另一个div到另一个div:
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时不会触发任何单击的事件:
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元素并为其提供Google Maps DOM侦听器?
答案 0 :(得分:1)
你需要
google.maps.event.addDomListener(div[0], 'click', ... // or div.get(0)
为了传递元素,而不是jQuery对象。 (参见jQuery get
)
你也可能想要:
$("#sidebar").append(div);
而不是
$("#sidebar").append(sidebarEntry);
我不知道sidebarEntry来自哪里。