避免在地图平移时自定义叠加点击事件(谷歌地图 API)
Avoid custom overlay click event when map is panning (google maps API)
与这个问题有关:"使自定义叠加可点击(谷歌地图API 3)",也与我在同一问题中的评论有关(发布在这里以使其更具可见性,因为我认为是其他问题)。
我已经在我的叠加面中添加了一个click
侦听器,但现在我遇到了一个问题,当用户想要平移地图并单击叠加层来执行此操作时,当释放鼠标按钮时,会触发单击事件。显然,当我只想平移地图时,我不想执行onclick
操作。这个问题有什么优雅的解决方案吗?
下面是问题的示例:平移/单击问题。
在这里查看这个更新的小提琴:http://jsfiddle.net/9gvsq3od/5/
基本上我添加了以下代码:
var dragging = false;
google.maps.event.addDomListener(this.path_, 'mousedown', function (evt) {
dragging = false;
});
google.maps.event.addDomListener(this.path_, 'mousemove', function (evt) {
dragging = true;
});
// onclick listener
google.maps.event.addDomListener(this.path_, 'click', function (evt) {
if (dragging) { return false;}
alert('clicked on path');
});
单击事件仅在释放鼠标按钮时触发,因此代码在鼠标移动时将变量dragging
设置为 true。第一个mousedown
句柄重置拖动变量,因为没有"mousestop"事件,我们需要在开始新交互时重置状态。
相关文章:
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 当谷歌地图进入街景时,我能抓住什么事件
- 谷歌地图动态创建的标记点击事件使用相同的标记
- 如何在多承诺链中处理谷歌地图API V3事件
- 将谷歌地图点击事件中的LatLng传递到rails控制器
- 在JQuery中使用谷歌地图Api事件/侦听器
- 点击事件在谷歌地图和AJAX
- 信息窗口谷歌地图点击事件给出错误
- firefox(谷歌地图)中未触发的点击事件
- 谷歌地图API-点击事件仅在边缘点击时触发
- 加载自定义磁贴后的谷歌地图事件
- 谷歌地图Javascript v3多段线点击事件
- 谷歌地图点击事件移动标记
- 谷歌地图API v3调整大小事件
- 如果谷歌地图绘图(如onDraw)触发什么事件
- 重叠圆圈阻止鼠标悬停事件-谷歌地图v3
- 显示谷歌地图点击事件 - 谷歌地图API
- 避免在地图平移时自定义叠加点击事件(谷歌地图 API)
- 简单点击事件谷歌地图