防止点击事件传播/冒泡到Google地图上

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

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

我希望我可以使用jQuery的event.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(); }); 

嗯。 我刚试过这个,一切都适合我。 我唯一的建议是检查你的div是否有正确的html / css /定位,因为它可能只是被地图覆盖。

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