I'm using OpenLayers 2.13. I want to detect mousedown
, mousemove
, mouseup
events while mouse is over OpenLayers.Map
, so I wrote the following code.
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");
});
As a result, mousemove
and mouseup
is detected but no mousedown
s.
It says here that mousemove
and mouseup
is supported but mousedown
is not. Is there any hacks I can apply to detect mousedown
events without modifying OpenLayers script?
Add the 4th argument as true
.
var events = map.events;
events.register("mousedown",map,function(e){
console.log("mousedown");
return true;
},true); // This argument is new
There are several event listeners already listening the mousedown
event. One of them will eat the event when [map drag start] is detected, so the mousedown
event will never reach the last listener.
Without the 4th argument, events.register()
will add the listener to the end of the event-listening chain. With the 4th argument, it will add it to the first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With