Heim > Web-Frontend > js-Tutorial > Wie behandelt man Klickereignisse bei dynamisch geladenen HTML-Elementen: „.live()' vs. „.on()'?

Wie behandelt man Klickereignisse bei dynamisch geladenen HTML-Elementen: „.live()' vs. „.on()'?

DDD
Freigeben: 2024-12-18 10:28:22
Original
145 Leute haben es durchsucht

How to Handle Click Events on Dynamically Loaded HTML Elements: `.live()` vs. `.on()`?

Ereignisbehandlung für dynamisch geladenes HTML: .live() vs. .on()

Bei der Arbeit mit dynamisch geladenem HTML wird es wichtig, um Ereignisse für Elemente zu verarbeiten, die ursprünglich nicht vorhanden sind. Die veraltete .live()-Methode und ihr empfohlener Ersatz .on() bieten verschiedene Ansätze zur Bewältigung dieser Herausforderung.

Die ursprüngliche Frage äußerte Schwierigkeiten bei der Registrierung von Klickereignissen für Elemente, die dynamisch mit $('#parent hinzugefügt wurden ').load("http://..."). Während .click() das Ereignis nicht erfassen kann, funktioniert .live(), ist jedoch veraltet.

Die Lösung liegt in der delegierten Ereignisbehandlung mithilfe von .on(). Anstatt das Ereignis direkt an das dynamisch geladene Element (#child) anzuhängen, binden Sie es mit einem Selektor, der zum untergeordneten Element passt, an das übergeordnete Element (#parent). Dieser Ansatz stellt sicher, dass #child, auch wenn es nach der Load()-Operation erstellt wird, den für sein übergeordnetes Element festgelegten Ereignishandler erbt.

Die empfohlene Syntax für dieses Szenario lautet:

$('#parent').on("click", "#child", function() {});
Nach dem Login kopieren

Auf diese Weise wird der Klick-Ereignis-Listener an #parent angehängt und jeder Klick, der von #child stammt, wird vom Ereignishandler erfasst und verarbeitet, auch wenn #child zum ersten Mal möglicherweise nicht vorhanden ist erstellt.

Das obige ist der detaillierte Inhalt vonWie behandelt man Klickereignisse bei dynamisch geladenen HTML-Elementen: „.live()' vs. „.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