javascript - 将 pointerenter 和 pointerleave 事件监听器添加到 map /容器?

标签 javascript here-api

我在一个组中有很多形状,需要为它们监听pointerenterpointerleave 事件。目前我正在将事件监听器添加到每个形状,但据我了解,最好让一个监听器覆盖所有形状。

按照此处的示例为 tap 添加事件监听器:https://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,我目前被迫将两个监听器添加到每个单独的形状。

最佳答案

对于您当前的代码段,只有在鼠标进入顶级对象、 map 或容器时才会触发 pointerenter 事件。

但是,如果您使用 addEventListener 函数的第三个可选参数,并将其设置为 true 以指示处理程序应该在捕获阶段,与冒泡阶段相对:

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

addEventListener API reference

关于javascript - 将 pointerenter 和 pointerleave 事件监听器添加到 map /容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53119770/

相关文章:

javascript - 删除 HERE Maps Javascript API 中的自定义标记不起作用

android - 将 Here-SDK 从 3.2 更新到 3.3 后出错

javascript - 无法加载静态资源 :Spring MVC

javascript - 二叉搜索树 - 删除函数不改变原始树

javascript - 格式化日期?

javascript - Phonegap -Leaflat map 填满剩余站点

here-api - HERE 使用自动完成功能映射 CORS 问题

javascript - Breeze中使用 'take'方法查询时可能出现的bug

iphone - 通过 API 启动诺基亚 HERE map iOS

java - HERE map Android : where is the RouteManager class?