Methode off
Die Methode off ermöglicht das Entfernen von Ereignis-Handlern
von einem Element. Um einen Handler hinzuzufügen,
kann die Methode
off verwendet werden.
Syntax
So entfernen wir einen Ereignis-Handler von einem Element.
Als erster Parameter werden ein oder mehrere durch Leerzeichen
getrennte Ereignisse als Zeichenkette übergeben, als zweiter -
ein zusätzlicher filternder Selektor für Nachfahren innerhalb des Elements
(dieser muss mit dem übereinstimmen, den wir an die
Methode on übergeben haben, als wir den
Handler hinzugefügt haben). Um alle delegierten Ereignisse zu entfernen,
übergeben Sie den Wert '**'. Der zweite Parameter
ist optional. Als drittes übergeben wir die Handler-Funktion
(die wir hinzugefügt haben), an die das Ereignisobjekt
übergeben wird, oder wir übergeben false:
$(Selector).off(Ereignisse, [Selector], Handler-Funktion(Ereignisobjekt));
Man kann die Methode off auch anders verwenden.
Dann wird als erster Parameter ein
JavaScript-Objekt übergeben, bei dem die Schlüssel den Ereignistyp und die
Werte die Handler-Funktionen darstellen, die wir dem
Element hinzugefügt haben:
$(Selector).off({'Ereignistyp': Handler}, [Selector]);
Wir können auch einfach einen Parameter in Form
eines jQuery.Event-Objekts übergeben:
$(Selector).off(Ereignis);
Wenn der Methode keine Parameter übergeben werden, entfernen wir alle hinzugefügten Handler von dem Element:
$(Selector).off();
Beispiel
Fügen wir den Absätzen die Handler-Funktion
testFunc hinzu. Aber wir entfernen den Handler sofort bei
dem zweiten Absatz, sodass ein Klick auf den zweiten Absatz zu
nichts führt (wenn wir die letzte
Codezeile auskommentieren, werden wir sehen, wie das Ereignis ausgelöst wird und
auch bei einem Klick auf den zweiten Absatz):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // Handler hinzufügen
$('#test2').on('click', {text: 'bbb'}, testFunc); // Handler hinzufügen
$('#test2').off('click', testFunc); // Handler entfernen