防止点击事件传播/冒泡到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地图点击事件。