最近,我有充分的理由在同一张地图上使用两种不同的选择交互,并且很惊讶地发现,最新应用的选择交互的事件处理程序是唯一触发的事件处理程序。

这两个选择交互都使用默认条件,即单击。

有没有办法让他们都触发?

最佳答案

嗯,即时通讯还使用了两次选择交互,我没有任何问题。我添加了一个对pointermove(如悬停)做出反应,一个对单击进行响应,并且两个选择交互都触发了。请注意为它们“命名”不同。
命名是错误的,我只是使用不同的变量创建/初始化两个

//select interaction working on click
var selectClick = new ol.interaction.Select({
                condition: ol.events.condition.click,
                layers: [layer]
            });
// select interaction working on "pointermove"
            var selectPointerMove = new ol.interaction.Select({
                condition: ol.events.condition.pointerMove,
                layers: [layer]
            });
            map.addInteraction(selectClick);
            map.addInteraction(selectPointerMove);

07-28 00:04