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
DDDOriginal
2024-12-20 06:32:09322Durchsuche

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'
  }
});

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)`
});

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!

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