In Openlayers 3 how to remove a event listener attached like this:
var a = map.on("pointerdrag",function (e) {
// event handler
});
var b = map.on("pointerdrag",function (e) {
// event handler
});
How do I remove only listner a
and keep b
active?
In Openlayers 3 how to remove a event listener attached like this:
var a = map.on("pointerdrag",function (e) {
// event handler
});
var b = map.on("pointerdrag",function (e) {
// event handler
});
How do I remove only listner a
and keep b
active?
2 Answers
Reset to default 11Ah its pretty simple! Its in the API Docs: unByKey
, but very counter-intuitive name for an off function.
So to remove the event listener a
:
map.unByKey(a);
Will remove a
listener but keep the b
on.
Note: this will work across any object in Open Layers 3 that emits an event. like Layers, Interactions etc..
I was just wondering the same thing, seems like off
would be the appropriate method to remove an event listener. You can also call this directly in the event callback:
map.on("pointerdrag", function (e) {
map.unByKey(e);
});
This should remove only the this specific event.