2

我已经定义了一个map.on('click',onClick)事件,但是当有人使用 zoomBox 处理程序时它也会触发(Shift+draw zoom box)

function onClick(e) {alert(e.latlng);}

e.type总是“点击”

我正在使用Leaflet 版本 0.5.1

我怎样才能避免这种情况?

提前致谢

4

1 回答 1

1

我想你发现了一个错误!我发现这个错误只出现在 IE 10 中,不仅 0.5.1,而且 0.6 也有同样的问题。您可以向Leaflet issue tracker报告错误

现在,暂时,您可以跟踪mousedown点并与click点进行比较以确定光标是否移动。

var mousedownPoint; // global

map.on('mousedown', function (e) {
  mousedownPoint = e.containerPoint;
});

map.on('click', function (e) {
  if (!e.containerPoint.equals(mousedownPoint)) {
    return;
  }

  // DO WHAT YOU WANT
});
于 2013-07-19T02:34:12.230 回答