代码之家  ›  专栏  ›  技术社区  ›  Keyslinger

无法将Google Maps DOM侦听器添加到使用jQuery创建的元素

  •  0
  • Keyslinger  · 技术社区  · 14 年前

    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触发标记的click事件。

    但是,当我尝试使用以下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);
    

    1 回复  |  直到 14 年前
        1
  •  1
  •   gblazex    14 年前

    你需要

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

    为了 传递元素,而不是jQuery对象 get )

    您可能还需要:

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

    而不是

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