gpt4 book ai didi

javascript - 如何在 OpenLayers.Map 上获取 `mousedown` 事件?

转载 作者:搜寻专家 更新时间:2023-11-01 05:05:48 25 4
gpt4 key购买 nike

我正在使用 OpenLayers 2.13。我想在鼠标悬停在 OpenLayers.Map 上时检测 mousedownmousemovemouseup 事件,所以我编写了以下代码。

var map = new OpenLayers.Map("map",{controls:[
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.ArgParser(),
new OpenLayers.Control.Attribution()
]});
var events = map.events;
events.register("mousedown",map,function(e){
console.log("mousedown");
});
events.register("mousemove",map,function(e){
console.log("mousemove");
});
events.register("mouseup",map,function(e){
console.log("mouseup");
});

因此,检测到 mousemovemouseup 但没有检测到 mousedown

它说 here mousemovemouseup 受支持,但 mousedown 不受支持。有没有我可以在不修改 OpenLayers 脚本的情况下应用检测 mousedown 事件的 hack?

最佳答案

将第 4 个参数添加为 true

var events = map.events;
events.register("mousedown",map,function(e){
console.log("mousedown");
return true;
},true); // This argument is new

有几个事件监听器已经在监听 mousedown 事件。其中一个会在检测到 [map drag start] 时吃掉该事件,因此 mousedown 事件永远不会到达最后一个监听器。

如果没有第 4 个参数,events.register() 会将监听器添加到事件监听链的末尾。对于第 4 个参数,它将把它添加到第一个。

关于javascript - 如何在 OpenLayers.Map 上获取 `mousedown` 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17379229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com