Heim > Web-Frontend > js-Tutorial > Wie migriere ich für dynamisch hinzugefügte Elemente von jQuerys .live() zu .on()?

Wie migriere ich für dynamisch hinzugefügte Elemente von jQuerys .live() zu .on()?

DDD
Freigeben: 2024-12-14 15:41:10
Original
994 Leute haben es durchsucht

How Do I Migrate from jQuery's .live() to .on() for Dynamically Added Elements?

Aktualisierung von .live() auf .on() in jQuery

In jQuery-Versionen 1.7 und höher verfügt die Methode .live() über wurde durch die vielseitigere .on()-Methode ersetzt. Beim Übergang zu .on() müssen jedoch bestimmte Nuancen berücksichtigt werden, um eine ordnungsgemäße Ereignisbehandlung sicherzustellen.

Ein häufig auftretendes Problem betrifft dynamisch hinzugefügte Elemente. Während .live() automatisch Ereignishandler an bestehende und zukünftige Elemente anfügt, die einem bestimmten Selektor entsprechen, fügt .on() Handler nur an Elemente an, die zum Zeitpunkt des Aufrufs bereits im DOM vorhanden waren.

Um Ähnliches zu erreichen Funktionalität zu .live() Beim Umgang mit dynamischen Elementen ist es notwendig, Ereignishandler mithilfe der .on()-Methode an ein übergeordnetes Element (z. B. den Dokumentkörper) zu binden.

Bedenken Sie beispielsweise Ein Szenario, in dem dynamische Dropdowns zu einer Webseite hinzugefügt werden und Ereignishandler an diese Dropdowns angehängt werden müssen, um Änderungen zu erkennen. Mit .on() würde der Event-Handler wie folgt an den Dokumentkörper gebunden werden:

$(document.body).on('change', 'select[name^="income_type_"]', function() {
    alert($(this).val());
});
Nach dem Login kopieren

Alternativ wird empfohlen, Event-Handler so nah wie möglich an die Zielelemente zu binden, was die Leistung verbessert und reduziert potenzielle Probleme.

Das obige ist der detaillierte Inhalt vonWie migriere ich für dynamisch hinzugefügte Elemente von jQuerys .live() zu .on()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage