"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi mes événements JavaScript ne se déclenchent-ils pas après l'ajout d'un élément dynamique ?

Pourquoi mes événements JavaScript ne se déclenchent-ils pas après l'ajout d'un élément dynamique ?

Publié le 2024-11-14
Parcourir:688

Why Are My JavaScript Events Not Triggering After Dynamic Element Appending?

Les événements JavaScript ne se déclenchent pas après l'ajout d'un élément dynamique

Vous rencontrez un problème où les événements JavaScript ne se déclenchent pas après l'ajout de nouveaux éléments au DOM . En effet, jQuery ne reconnaît que les éléments présents lors de son exécution initiale lors du chargement de la page.

Pour résoudre ce problème, vous devez utiliser la délégation d'événements pour capturer les événements des éléments dynamiques. La délégation d'événements implique de capturer des événements à un niveau supérieur dans le DOM qui étaient déjà présents lors du chargement de la page. Cela permet aux événements des éléments nouvellement ajoutés de remonter et d'être gérés.

Dans votre cas, vous pouvez déléguer l'événement de clic à un élément parent qui était présent lors du chargement de la page. Par exemple, vous pouvez modifier votre code JavaScript pour utiliser la méthode on() comme suit :

$(document).on('click', '.races', function(e) {
  // Your code here
});

De cette façon, tous les nouveaux éléments ajoutés avec la classe ".races" hériteront du gestionnaire d'événements click. N'oubliez pas d'utiliser la méthode on() au lieu de click() lors de l'implémentation de la délégation d'événements.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3