谷歌地图可编辑多边形过滤器 从set_at事件中拖动事件
Google Map Editable Polygon Filter Drag event from set_at events
我有一个可编辑的多边形,我想在拖动顶点时收听事件(多边形调整大小)。通常将路径附加到"set_at"事件很好,但是当拖动整个多边形时,它会触发很多事件。
google.maps.event.addListener(polygon, 'dragend', function(){search();});
google.maps.event.addListener(polygon.getPath(), 'insert_at', function(e, e1){search();});
google.maps.event.addListener(polygon.getPath(), 'remove_at', function(e, e1){search();});
//this also fires a lot of events when ploygon is dragged
google.maps.event.addListener(polygon.getPath(), 'set_at', function(){search();});
我想要实现的是有一个类似于"shape_changed"的事件,它在拖动时不会触发事件。
删除dragstart
上的set_at
侦听器,并在dragend
上重新分配set_at
侦听器
另一种选择是在 dragstart 和 dragend 设置一个标志,并让你的set_at侦听器在执行任何操作之前查看该标志:
polygon.addListener('dragstart', function (event) {
dragging = true;
});
polygon.addListener('dragend', function (event) {
//do drag end stuff here
dragging = false;
});
//setup resize handler
var paths = polygon.getPaths();
paths.forEach(function (path) {
path.addListener('set_at', function (event) {
if (!dragging) //ignore this event while dragging
//do resize stuff here
});
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- 如何使jqGrid工具栏搜索在任何事件中寻找at,而不仅仅是开始