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!