Heim >Web-Frontend >js-Tutorial >Wie migriere ich für dynamisch hinzugefügte Elemente von jQuerys .live() zu .on()?
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()); });
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!