Einmaliges Ereignis in jQuery
Als wir das Abkoppeln von Ereignissen mit
der Methode
off
studierten,
verwendeten wir die folgende Konstruktion:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Zuerst haben wir die Handler-Funktion mit
on
angebunden,
dann mit off abgekoppelt.
In jQuery gibt es eine praktische Methode
one,
die es erlaubt, ein einmaliges Ereignis zu binden -
es wird nur ein einziges Mal ausgeführt, und
danach automatisch abgekoppelt. Diese Methode
erwartet als ersten Parameter den Ereignistyp,
und als zweiten - die anzubindende Funktion.
Das folgende Beispiel betrachten wir auf Basis des untenstehenden HTML-Codes:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
Der CSS-Code sieht so aus:
li {
width: 100px;
cursor: pointer;
}
Jetzt binden wir an jedes li ein
einmaliges Ereignis:
$('li').one('click', function() {
$(this).append('!');
});
Klicken Sie auf die Punkte
der Liste. Wie Sie sehen, erhalten wir den gleichen Effekt, dank
der Methode one.
Binden Sie an alle Links ein Ereignis - beim
Bewegen der Maus über den Link wird ihr
href in runden
Klammern an ihren Text angehängt.
Nach dem ersten Überfahren des Links
soll das Ereignis von ihm abgekoppelt werden,
das den href an den Text anhängt.
Sorgen Sie für alle Inputs dafür, dass sie
ihren value ausgeben, wenn
auf einen beliebigen von ihnen geklickt wird, aber nur beim
ersten Klick. Ein erneuter Klick auf
den Input sollte keine Reaktion auslösen.
Es sind Absätze mit Zahlen gegeben. Beim Klick auf einen Absatz soll in ihm das Quadrat der Zahl erscheinen, die er enthält, aber nur beim ersten Klick. Bei einem Doppelklick auf den Absatz soll sich die Zahl im Absatz verdoppeln, aber auch nur das erste Mal.
Es sind Absätze gegeben. Sorgen Sie dafür, dass beim ersten
Klick auf einen Absatz an sein Ende ein '!'
angehängt wird,
aber nur beim ersten Klick.