OpenLayers 3: Remove event listener

Shaunak picture Shaunak · Aug 27, 2015 · Viewed 7.6k times · Source

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?

Answer

Shaunak picture Shaunak · Aug 27, 2015

Ah 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..