将pointerenter和pointerleave事件侦听器添加到地图/容器?

时间:2018-11-02 13:47:21

标签: javascript here-api

我在一个小组中有许多形状,需要为它们听pointerenterpointerleave事件。当前,我将事件侦听器添加到每个形状中,但是据我所知,最好是由一个侦听器覆盖所有形状。

在下面的示例中,为taphttps://developer.here.com/api-explorer/maps-js/v3.0/events/map-objects-event-delegation添加事件监听器,但我想对pointerenterpointerleave做同样的事情,但是无论如何尝试我不能解雇他们中的任何一个。

我已尝试将其添加到container中,如上例所示:

container.addEventListener('pointerenter', function(event){
   console.log(event.target);
});

还有map

map.addEventListener('pointerenter', function(event){
   console.log(event.target);
});

tap事件的触发效果很好,但是对于pointerenterpointerleave,我目前被迫将两个侦听器添加到每个形状中。

1 个答案:

答案 0 :(得分:2)

使用当前代码段,仅当鼠标进入顶级对象,地图或容器时,才会触发指标输入事件。

但是,如果使用addEventListener函数的第三个可选参数,并将其设置为true,则可以实现所需的内容,以指示处理程序应在期间进行侦听捕获阶段,而不是冒泡阶段:

map.addEventListener('pointerenter', function (event) {
  console.log(event.target instanceof H.geo.Polygon);
}, true);

addEventListener API reference