googlemaps的Javascript事件处理

googlemaps的Javascript事件处理,javascript,google-maps,event-handling,Javascript,Google Maps,Event Handling,我在我的应用程序中使用谷歌地图+javascript+php。 我想知道两件事: 在谷歌地图中 moveend事件总是被激发吗 zoomend/dragend之后(以两者中的任何一个为准 二是事件发生 当我点击谷歌地图上的缩放图标时 或滚动鼠标滚轮进行缩放, zoomend事件被触发的次数更多 不止一次。如果我放大一步 使用地图上的+图标,缩放 事件被激发两次或有时 更多任何可能的漏洞 所以想知道如何停止javascript中进一步的事件传播。(请记住,我不需要使用clearListeners,

我在我的应用程序中使用谷歌地图+javascript+php。 我想知道两件事:
在谷歌地图中

  • moveend事件总是被激发吗 zoomend/dragend之后(以两者中的任何一个为准 二是事件发生

  • 当我点击谷歌地图上的缩放图标时 或滚动鼠标滚轮进行缩放, zoomend事件被触发的次数更多 不止一次。如果我放大一步 使用地图上的+图标,缩放 事件被激发两次或有时 更多任何可能的漏洞

    所以想知道如何停止javascript中进一步的事件传播。(请记住,我不需要使用clearListeners,因为它将永远忽略不需要的事件处理程序)


  • 谢谢。

    您可以尝试将事件设置为false或null。
    如果这不起作用,尝试使用“event.cancelBubble=true”或“event.stopPropagation”

    我设置了“moveend”、“zoomend”和“dragend”的侦听器进行尝试

    GEvent.addListener(map, "moveend", function() { console.log('moveend'); });
    GEvent.addListener(map, "zoomend", function() { console.log('zoomend'); });
    GEvent.addListener(map, "dragend", function() { console.log('dragend'); });
    
    “moveend”似乎总是在“zoomend”或“dragend”之后触发


    但是,没有任何事件一次触发超过一次。也许你不小心同时设置了两个侦听器。您不需要使用stopPropagation或cancelBubble。

    同时使用cancelBubble和stopPropagation(),因为有些浏览器需要前者和后者。