如何禁用或隐藏叠加层下的要素事件?事件" map.on(' SingleClick'"状况良好但不是"事件map.on(' pointermove'" of覆盖层下方的标记。
你有什么想法吗?
答案 0 :(得分:1)
这是你可以做的事情。在pointermove
事件发生时调用的方法中,您可以检查以下属性的值:
evt.originalEvent.target
- 总是等于作为事件目标的dom元素。例如,当鼠标悬停在弹出窗口时,它可以等于<div id="popup-content">...</div>
evt.originalEvent.currentTarget
- 它将始终等于openlayers的视口div 您可以做的是:当evt.originalEvent.target
不是OpenLayers的视口时,不执行任何操作。
我必须做一些非常相似的事情。我在地图中有叠加层,我想阻止pointermove
在其下方发生。这是我做的:
var target = evt.originalEvent.target;
if ($(this.getElement()).has(target)) {
evt.coordinate = [Infinity, Infinity];
evt.pixel = [Infinity, Infinity];
}
在上文中,this
代表ol.Overlay
对象。我们的想法是覆盖事件的坐标和像素属性,这使得其余的交互按照我的意愿行事:什么都不做。
答案 1 :(得分:0)
var container = document.getElementById('popup');
...
container.onmousemove = function(evt) {
evt.stopPropagation();
tooltip.innerHTML = "";
};