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
DDDOriginal
2024-12-18 10:28:22211Durchsuche

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() {});

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!

Stellungnahme:
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