Heim >Web-Frontend >js-Tutorial >Wie hänge ich Event-Handler mit jQuery an dynamisch erstellte HTML-Elemente an?
In jQuery erfordert das Anhängen von Ereignishandlern an dynamisch erstellte HTML-Elemente einen anderen Ansatz als bei statischen Elementen. Dynamischen HTML-Elementen, die der Seite durch Techniken wie AJAX oder DHTML hinzugefügt werden, fehlen Ereignisbindungen, sofern sie nicht explizit behandelt werden.
Angenommen, Sie haben einen jQuery-Code, der einen Ereignishandler an alle Elemente mit der Klasse „.myclass“ anfügt. Dies funktioniert nahtlos für Elemente, die beim Laden der Seite vorhanden sind, aber das Anhängen von Ereignishandlern an dynamisch erstellte „.myclass“-Elemente stellt eine Herausforderung dar.
Um dieses Problem zu beheben, können zwei Techniken eingesetzt werden:
In jQuery 1.7 und höher ist die .live()-Methode veraltet. Stattdessen sollte .on() zum Anhängen von Ereignishandlern verwendet werden. Mit dieser Methode können Sie einen Selektor angeben, der das übergeordnete Element auswählt, und ihn mit dem Selektor für die dynamischen Elemente kombinieren, für die Sie Ereignisse verarbeiten möchten.
Zum Beispiel:
$('body').on('click', 'a.myclass', function() { // Do something });
In diesem Beispielsweise wird der Event-Handler an alle a-Tags mit der myclass-Klasse im Body-Tag angehängt, unabhängig davon, ob sie beim Laden der Seite vorhanden sind oder später dynamisch hinzugefügt werden.
Für jQuery-Versionen vor 1.7 kann die .delegate()-Methode anstelle von .on() verwendet werden. Die Syntax ist ähnlich und ermöglicht Ihnen die Angabe eines übergeordneten Selektors und eines Selektors für die dynamischen Elemente:
$('body').delegate('a.myclass', 'click', function() { // Do something });
Durch die Verwendung einer dieser Techniken wird sichergestellt, dass Ereignishandler sowohl an statische als auch an dynamisch erstellte HTML-Elemente angehängt werden Es ist praktisch für die Handhabung von Ereignissen mit dynamischen Inhalten.
Das obige ist der detaillierte Inhalt vonWie hänge ich Event-Handler mit jQuery an dynamisch erstellte HTML-Elemente an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!