Openlayers 3 如何禁用事件

Openlayers 3 如何禁用事件,openlayers-3,Openlayers 3,如何禁用或隐藏覆盖下功能的事件?事件“map.on”('SingleClick')很好,但不是覆盖下标记的“event map.on”('pointermove') 你有什么想法吗 您可以执行以下操作。在pointermove事件发生时调用的方法中,您可以检查以下属性的值: evt.originalEvent.target-始终等于作为事件目标的dom元素。例如,当鼠标悬停在弹出窗口上时,它可以等于… evt.originalEvent.currentTarget-始终等于openlayer

如何禁用或隐藏覆盖下功能的事件?事件“map.on”('SingleClick')很好,但不是覆盖下标记的“event map.on”('pointermove')

你有什么想法吗


您可以执行以下操作。在
pointermove
事件发生时调用的方法中,您可以检查以下属性的值:

  • evt.originalEvent.target
    -始终等于作为事件目标的dom元素。例如,当鼠标悬停在弹出窗口上时,它可以等于
  • evt.originalEvent.currentTarget
    -始终等于openlayers的viewport div
您可以做的是:当
evt.originalEvent.target
不是OpenLayers的视口时,不执行任何操作

更新2016-04-13 我必须做一些非常类似的事情。我在地图中有一个覆盖层,我想防止
点移动
发生在它下面。下面是我所做的:

var target = evt.originalEvent.target;
if ($(this.getElement()).has(target)) {
  evt.coordinate = [Infinity, Infinity];
  evt.pixel = [Infinity, Infinity];
}

在上面,
这个
代表了
ol.Overlay
对象。其思想是覆盖事件的坐标和像素属性,这使得其余的交互按我所希望的那样进行:什么都不做。

你能从中创建一个小的JSFIDLE live示例吗?我有兴趣使用它来寻找answer、 哦,如果你也能澄清你想做什么,那就太好了。我不确定我是否完全理解你想做什么。当将光标移动到下面的标记上时,覆盖层下面的标记的工具提示会出现。()根据你的想法,我有另一个想法,我不知道这是否是一件好事。()如果(evt.originalEvent.target.id==container.id | | evt.originalEvent.target.id==content.id){tooltip.innerHTML=“”;return;}感谢@Alexandre Dubé的帮助。
var container = document.getElementById('popup');    
...
container.onmousemove = function(evt) {
    evt.stopPropagation();
    tooltip.innerHTML = "";
};