1

我正在使用 Google Maps API V3 的 MarkerClusterer 库将附近的标记分组为单个标记。当用户单击集群标记时,该集群标记旁边会出现一个 div。现在我想让它在点击集群标记后关闭弹出的div,他可以点击地图。

问题:在map上添加a后google.maps.event.addListener(map, 'click', function(){}),当用户点击cluster marker打开popup div时,没有任何反应!!我猜集群标记上的单击事件导致 div 弹出,但单击事件也传播到地图,触发地图的单击侦听器关闭弹出窗口。

我希望我可以使用 jQueryevent.stopPropagation(),但我在哪里可以获得event对象?

我怎么解决这个问题?如何防止点击通过集群标记传播到地图?希望该解决方案是跨浏览器兼容的。

JS代码

clusterclickListener = google.maps.event.addListener(mc, "clusterclick", function (cluster) {
    $('#content_container').show();
});

google.maps.event.addListener(map, 'click', function() {
    $('#content_container').hide(); 
});
4

1 回答 1

4

唔。我刚刚测试了这个,一切都对我有用。我唯一的建议是检查您的 div 是否具有正确的 html/css/positioning,因为它可能只是被地图所覆盖。

默认情况下,事件对象可在处理程序函数中访问。如果你想访问事件对象,你可以简单地使用“事件”访问它,所以 event.stopPropagation() 应该可以工作。请记住,如果您将“事件”作为参数传递给处理函数,您将获得一个没有 stopPropagation 方法的自定义 Google 地图点击事件。

于 2012-04-04T07:49:21.500 回答