我已经为标记创建了一个标记和附加的点击事件监听器。但是,我想检查点击事件是否已经附加到标记,如果没有,请附加click事件监听器。
// If no click event listener, then attach the listener
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
但我可以使用标记对象中的自定义标志来检查:
// If no click event listener, then attach the listener
if (! marker._isClickEventBound) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
marker._isClickEventBound = true;
});
}
在添加新标记和编辑标记期间执行相同的代码。我只是想知道是否有其他方式而不是添加标志?
答案 0 :(得分:1)
添加标志实际上很好。
除此之外,google.maps.event.addListener
会返回一个事件对象。您可以跟踪已添加的所有事件对象,并在需要时清理标记事件......
答案 1 :(得分:0)
hasListeners返回一个布尔值:
google.maps.event.hasListeners(marker,'click')
也适用于地图本身:
google.maps.event.hasListeners(map,'idle')
答案 2 :(得分:-1)
丑陋的黑客将删除所有侦听器并再次附加它。
google.maps.event.clearListeners(map, 'click');