Heim > Web-Frontend > js-Tutorial > Wie hänge ich Ereignis-Listener an dynamisch erstellte Elemente in JavaScript an?

Wie hänge ich Ereignis-Listener an dynamisch erstellte Elemente in JavaScript an?

DDD
Freigeben: 2024-12-20 06:32:09
Original
294 Leute haben es durchsucht

How to Attach Event Listeners to Dynamically Created Elements in JavaScript?

Ereignisse an dynamisch erstellte Elemente in JavaScript anhängen

Beim Versuch, dynamische Elemente an eine dynamisch erstellte Liste anzuhängen und einen Ereignis-Listener hinzuzufügen Bei dynamisch erstellten Elementen werden die Ereignisse möglicherweise nicht ausgelöst. Dies liegt daran, dass die Elemente zum Zeitpunkt des Anhängens der Ereignis-Listener nicht verfügbar sind.

Um dieses Problem zu beheben, kann die Ereignisdelegierung eingesetzt werden. Bei dieser Technik werden Ereignis-Listener an ein übergeordnetes Element angehängt, das die dynamisch erstellten Elemente enthält.

Betrachten Sie beispielsweise den folgenden Code:

document.addEventListener("click", function(e) {
  const target = e.target.closest("#btnPrepend"); // or any other selector

  if (target) {
    // Do something with 'target'
  }
});
Nach dem Login kopieren

In diesem Beispiel handelt es sich um einen Ereignis-Listener Wird an das Dokumentobjekt angehängt und wartet auf Klickereignisse. Mit der Funktion „nearest()“ wird ermittelt, ob das Klickereignis von einem Element mit dem Selektor #btnPrepend (oder einem anderen definierten Selektor) stammt. Wenn eine Übereinstimmung gefunden wird, wird das Ereignis entsprechend behandelt.

Alternativ bietet jQuery einen vereinfachten Ansatz zur Ereignisdelegierung:

$(document).on("click", "#btnPrepend", function() {
  // Do something with `$(this)`
});
Nach dem Login kopieren

Diese Methode hängt einen Ereignis-Listener an das Dokumentobjekt an und lauscht für Klickereignisse speziell auf Elemente mit dem Selektor #btnPrepend.

Das obige ist der detaillierte Inhalt vonWie hänge ich Ereignis-Listener an dynamisch erstellte Elemente in JavaScript an?. 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