Maison >interface Web >js tutoriel >Comment gérer les événements de clic sur les éléments HTML chargés dynamiquement : `.live()` contre `.on()` ?

Comment gérer les événements de clic sur les éléments HTML chargés dynamiquement : `.live()` contre `.on()` ?

DDD
DDDoriginal
2024-12-18 10:28:22141parcourir

How to Handle Click Events on Dynamically Loaded HTML Elements: `.live()` vs. `.on()`?

Gestion des événements pour le HTML chargé dynamiquement : .live() vs. .on()

Lorsque vous travaillez avec du HTML chargé dynamiquement, cela devient essentiel pour gérer les événements pour les éléments qui n'existent pas initialement. La méthode obsolète .live() et son remplacement recommandé, .on(), proposent différentes approches pour relever ce défi.

La question initiale exprimait des difficultés à enregistrer les événements de clic pour les éléments ajoutés dynamiquement à l'aide de $('#parent ').load("http://..."). Alors que .click() ne parvient pas à capturer l'événement, .live() fonctionne mais est obsolète.

La solution réside dans la gestion déléguée des événements à l'aide de .on(). Au lieu d'attacher l'événement directement à l'élément chargé dynamiquement (#child), liez-le au parent (#parent) avec un sélecteur correspondant à l'enfant. Cette approche garantit que même si #child est créé après l'opération load(), il héritera du gestionnaire d'événements défini sur son parent.

La syntaxe recommandée pour ce scénario est :

$('#parent').on("click", "#child", function() {});

De cette manière, l'écouteur d'événement click sera attaché à #parent, et tout clic provenant de #child sera capturé et traité par le gestionnaire d'événements, même si #child peut ne pas exister lorsque le parent est initialement créé.

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