Heim >Web-Frontend >js-Tutorial >JQuery 1.7 .on () vs .live () Review
jQuery's .on()
und .off()
Methoden: Eine umfassende Anleitung
In diesem Artikel wird die Ereignishandler von JQuery und .on()
untersucht und sie mit der inzwischen vorbereiteten .off()
-Methode verglichen. Adam Sontags Empfehlung auf dem JQuery -Gipfel 2011 zur Übernahme von .live()
und .on()
hob signifikante Verbesserungen hervor. Lassen Sie uns die Funktionen und Unterschiede eintauchen. .off()
jQuery (veraltet) .live()
-Methode, sobald er für die Fähigkeit gelobt wurde, Ereignishandler an dynamisch hinzugefügte DOM -Elemente anzubringen, wird nicht mehr empfohlen. Seine Einschränkungen umfassen: .live()
.live()
$("a").find(".offsite, .external").live(...)
event.stopPropagation()
unbind()
entfernt $(document).unbind("click")
alle Klicken Sie über angehängt, was möglicherweise ein unerwartetes Verhalten verursacht. .live()
jQuery .on()
Fügen Sie Ereignishandler an ausgewählte Elemente hinzu, die sowohl vorhandene als auch zukünftige Elemente bearbeiten. .on()
Schlüsselunterschiede: vs. .live()
.on()
.live()
, während document
eine präzisere Ereignisdelegation auf einem bestimmten Vorfahren ermöglicht. .on()
.live()
$(selector).live(events, data, handler); // jQuery 1.3+ (Deprecated) $(document).delegate(selector, events, data, handler); // jQuery 1.4.3+ (Deprecated) $(document).on(events, selector, data, handler); // jQuery 1.7+
.on()
, oft um den Faktor 3 oder 4, wie durch verschiedene Leistungsbenchmarks gezeigt. .live()
jQuery .off()
.off()
entfernt Ereignishandler und liefert ein Gegenstück zu .on()
. Es funktioniert ähnlich wie .unbind()
, wobei die Rückwärtskompatibilität beibehalten wird. In JQuery 1.7 und später ist .unbind()
im Wesentlichen ein Alias für .off()
.
.bind()
und .on()
In JQuery 1.7 und später ist .bind()
ein Alias für .on()
.
Migration von .live()
nach .on()
Ersetzen Sie $(selector).live(event, data, function)
durch $(document).on(event, selector, data, function)
. Beachten Sie die geänderte Parameterreihenfolge.
häufig gestellte Fragen (FAQs)
Der im Originaltext bereitgestellte FAQS -Abschnitt ist bereits umfassend und befasst sich mit den wichtigsten Unterschieden, Migrationsstrategien und Leistungsüberlegungen in Bezug auf .live()
und .on()
. Es ist nicht nötig, es hier zu reproduzieren.
Schlussfolgerung
Die Verschiebung von .live()
zu .on()
und .off()
ist ein entscheidendes Upgrade bei der Handhabung von JQuery Event. .on()
bietet überlegene Leistung, Flexibilität und Wartbarkeit und ist es zur bevorzugten Wahl für die moderne JQuery -Entwicklung.
Das obige ist der detaillierte Inhalt vonJQuery 1.7 .on () vs .live () Review. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!