点击Google PlayClusterer时,Google地图API API v3事件点击加注?

jps*_*nyx 4 javascript javascript-events google-maps-api-3 markerclusterer

我在使用MarkerClusterer的页面上有一个Google Map API v3 地图对象.我有一个功能需要在我们点击地图时运行它被注册为:

google.maps.event.addListener(map, 'click', function (event) {
    CallMe(event.latLng);
});
Run Code Online (Sandbox Code Playgroud)

所以我的问题如下:当我点击一个MarkerClusterer集群而不是像标记那样表现并且没有在地图上引发点击事件而只是在标记中引发点击事件时它会从地图中调用点击.

为了测试这个,我从markerclusterer生成了一个警告点击:

google.maps.event.addListener(markerClusterer, "clusterclick", function (cluster) {
    alert('MarkerClusterer click event');
}); 
Run Code Online (Sandbox Code Playgroud)

因此,在map对象的click事件之后,clusterclick会上升.然后,我无法删除map对象的侦听器作为解决方案.有没有办法测试地图点击事件中是否有群集点击?或者是一种复制标记行为的方法,并且在调用clustererclick时不会引发map的click事件?谷歌和文档没有帮助我.

谢谢

jps*_*nyx 5

这是有效的,但我仍然对其他更好的答案持开放态度.

我使用setTimeout来中继地图点击事件,这是javascript应该执行的最后一件事,如果之前引发了clustererclick,则使用布尔值进行检查,如下所示:

google.maps.event.addListener(map, 'click', function (event) {
    setTimeout(function () {
        if (!clusterClicked) {
            CallMe(event.latLng);
            alert('Map click executed');
        }
        else {
            clusterClicked = false;
            alert('ClusterClicked map click not executed');
        }
    }, 0);
});

google.maps.event.addListener(markerClusterer, "clusterclick", function (cluster) {
    clusterClicked = true;
}); 
Run Code Online (Sandbox Code Playgroud)