将事件从重叠的div传递到Highmaps

时间:2018-03-07 14:00:34

标签: javascript highcharts highmaps

我正在使用Highmaps来显示一个简单的地图,在它上面我有另一个div,它有一个在地图上绘制东西的组件(这必须以这种方式完成,我无法在Highmaps中绘制所有内容,这是不幸的)。

现在我想与地图有一些互动,虽然它低于我的div。我想知道当我点击它上面的div时,是否有办法触发地图上的点击,悬停等事件。

我搜索Highmaps docs试图找到类似trigger(ev, x, y)的方法,但似乎没有。然后我在Map DOM上使用MouseEvent()dispatchEvent()尝试了一个纯粹的JavaScript解决方案,但它也没有用。

我已经设置了一个简单的小提琴,我想要工作:http://jsfiddle.net/k11yfz58/1/

如果我们为#overlay div做准备,我们会在点击状态时收到提醒。我想要相同的行为,但点击叠加div,这可能吗?

谢谢!

修改

建议使用pointer-events CSS属性。这并不能解决我的问题,因为我还需要在#overlay div上触发事件。

1 个答案:

答案 0 :(得分:1)

您可以将此添加到您的css:

#overlay {
    pointer-events: none;
}

来自MDN

  

指针事件CSS属性指定在什么情况下(如果有的话)特定图形元素可以成为鼠标事件的目标。

none值:

  

<强>无
  该元素永远不是鼠标事件的目标;但是,鼠标事件可能会针对其后代元素,如果这些后代将指针事件设置为某个其他值。在这些情况下,鼠标事件将在事件捕获/冒泡阶段期间在发送/来自后代的路径上触发此父元素上的事件侦听器。

这意味着您的覆盖元素对鼠标事件是“不可见的”,因此鼠标事件发生在下面的div上。