Izu*_*ima 4 javascript openlayers
我正在使用OpenLayers 2.13.我想检测mousedown,mousemove,mouseup事件,而鼠标在OpenLayers.Map,所以我写了下面的代码.
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");
});
Run Code Online (Sandbox Code Playgroud)
结果,mousemove并且mouseup被检测到但没有mousedowns.
它在这里说mousemove并且mouseup得到支持但mousedown不是.在mousedown没有修改OpenLayers脚本的情况下,是否可以应用任何黑客来检测事件?
添加第4个参数为true.
var events = map.events;
events.register("mousedown",map,function(e){
console.log("mousedown");
return true;
},true); // This argument is new
Run Code Online (Sandbox Code Playgroud)
有几个事件监听器已经在监听mousedown事件.当检测到[map drag start]时,其中一个会吃掉事件,因此mousedown事件永远不会到达最后一个监听器.
如果没有第4个参数,events.register()将把监听器添加到事件监听链的末尾.使用第4个参数,它会将它添加到第一个参数.
| 归档时间: |
|
| 查看次数: |
5550 次 |
| 最近记录: |