Maison >interface Web >js tutoriel >Comment attacher des écouteurs d'événements à des éléments créés dynamiquement en JavaScript ?

Comment attacher des écouteurs d'événements à des éléments créés dynamiquement en JavaScript ?

DDD
DDDoriginal
2024-12-20 06:32:09299parcourir

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

Attachement d'événements à des éléments créés dynamiquement en JavaScript

Lorsque vous essayez d'ajouter des éléments dynamiques à une liste créée dynamiquement et d'ajouter un écouteur d'événement au éléments créés dynamiquement, les événements peuvent ne pas se déclencher. En effet, les éléments ne sont pas disponibles au moment où les écouteurs d'événement sont attachés.

Pour résoudre ce problème, la délégation d'événement peut être utilisée. Cette technique consiste à attacher des écouteurs d'événements à un élément de niveau supérieur qui contient les éléments créés dynamiquement.

Par exemple, considérons le code suivant :

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

  if (target) {
    // Do something with 'target'
  }
});

Dans cet exemple, un écouteur d'événements est attaché à l'objet document, à l'écoute des événements de clic. La fonction close() est utilisée pour déterminer si l'événement click provient d'un élément avec le sélecteur #btnPrepend (ou de tout autre sélecteur défini). Si une correspondance est trouvée, l'événement est traité en conséquence.

Alternativement, jQuery propose une approche simplifiée de la délégation d'événements :

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

Cette méthode attache un écouteur d'événement à l'objet document, en écoutant pour les événements de clic spécifiquement sur les éléments avec le sélecteur #btnPrepend.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn