2010-02-11 77 views
0

我在我的应用程序中使用google maps + javascript + php。 我想知道两件事情:
在谷歌地图,Google地图的Javascript事件处理

  1. 不总是moveend事件被炒鱿鱼 后zoomend/dragend(取其 二)事件发生。

  2. 当我点击谷歌地图 缩放图标或滚动鼠标滚轮缩放, 的zoomend事件被炒鱿鱼不止一次 。如果我使用地图上的+图标放大一个步骤 ,则缩放事件将被触发两次或有时会更多地触发 。任何可能的漏洞。

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

谢谢。

回答

1

我设置了'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。

+0

我明白了。感谢您的回应。 – Prashant 2010-02-12 06:53:28

1

你可以尝试只是从事件reuturning虚假或null。 如果这不起作用尝试使用“event.cancelBubble = true”或“event.stopPropagation”

+0

同时使用cancelBubble和stopPropagation(),因为某些浏览器需要前者和后者。 – 2010-02-11 16:43:55

+0

谢谢你的回复。 – Prashant 2010-02-12 06:53:51