Die Methode off in jQuery
Das Entfernen von Events, die über
on
gebunden wurden,
erfolgt mit der Methode
off.
Als ersten Parameter erwartet sie den Event-Typ
(zum Beispiel 'click'), und als zweiten - den Namen
der Funktion, die entfernt werden soll.
Betrachten wir das folgende Beispiel. Nehmen wir an, wir haben den HTML-Code:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
In CSS ist ein Stil für den Tag li definiert:
li {
width: 100px;
cursor: pointer;
}
Lassen Sie uns bewirken, dass nach dem ersten
Klick auf ein li das Event von ihm
entfernt wird:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Klicken Sie auf die Listeneinträge. Sie werden sehen, dass bei einem erneuten
Klick auf denselben Listeneintrag nichts passiert, da
unsere Funktion func nach der Ausführung der Methode
append
durch die Methode off entfernt wird.
Binden Sie an alle Links ein Event - beim
Bewegen der Maus über den Link soll dessen
href in runden
Klammern an das Ende seines Textes angehängt werden.
Nach dem ersten Überfahren des Links mit der Maus
soll das Event von ihm entfernt werden,
das den href an das Textende anhängt.
Machen Sie es für alle Inputs so, dass sie
ihren value ausgeben, wenn
auf einen beliebigen von ihnen geklickt wird, aber nur beim
ersten Klick. Ein erneutes Klicken auf
den Input sollte keine Reaktion auslösen.
Gegeben sind Absätze mit Zahlen. Beim Klick auf einen Absatz sollte in ihm das Quadrat der Zahl, die er enthält, erscheinen, aber nur beim ersten Klick. Bei einem Doppelklick auf den Absatz soll sich die Zahl im Absatz verdoppeln, aber ebenfalls nur beim ersten Mal.