2015-08-27 5 views

Antwort

11

Ah ist es ziemlich einfach! Seine in der API Docs: unByKey, aber sehr kontraintuitive Bezeichnung für eine Aus-Funktion.

map.unByKey(a); 

Will entfernen a Zuhörer aber die b auf halten:

So den Ereignis-Listener a zu entfernen.

Hinweis: Dies funktioniert über jedes Objekt in Open Layers 3, das ein Ereignis ausgibt. Wie Ebenen, Interaktionen usw.

+1

Hinweis: Sie können auch '.un' verwenden, wenn Sie eine benannte Funktion verwenden. 'function onPointerDragOne() {/ * do stuf * /}' 'Funktion onPointerDragTwo() {/ * do stuf * /}' 'map.on (" pointerdrag ", onPointerDragOne);' 'map.on ("pointerdrag", onPointerDragTwo); ' ' map.un ("pointerdrag", onPointerDragOne); ' ' // Nur onPointerDragTwo läuft " –

1

Ich war nur die gleiche Frage, scheint wie off wäre die geeignete Methode, um einen Event-Listener zu entfernen. Sie können dies auch direkt im Ereignis-Callback aufrufen:

map.on("pointerdrag", function (e) { 
    map.unByKey(e); 
}); 

Dies sollte nur dieses spezifische Ereignis entfernen.

+0

Warum mache ich so etwas? –