Maison > interface Web > js tutoriel > le corps du texte

Comment empêcher la propagation des événements dans les éléments HTML imbriqués ?

Patricia Arquette
Libérer: 2024-11-12 03:18:02
original
296 Les gens l'ont consulté

How to Prevent Event Propagation in Nested HTML Elements?

Prévenir la propagation des événements dans les éléments imbriqués

Lorsque vous traitez des éléments imbriqués en HTML, la gestion de la propagation des événements peut être cruciale. Dans certains scénarios, vous souhaiterez peut-être empêcher l'exécution d'un gestionnaire d'événements parent lorsque vous cliquez sur un élément enfant. Explorons un exemple spécifique pour comprendre comment cela peut être réalisé.

Considérons une arborescence de divs : #a, #b et #c, chaque div ayant son propre gestionnaire de clics (func), qui cache ses enfants visibles. Lorsqu'un clic se produit sur #b, il déclenche par inadvertance le gestionnaire de clics de #a, ce qui entraîne le masquage de #b et #c.

Pour éviter cela, nous pouvons utiliser la méthode stopPropagation() de jQuery. En ajoutant un gestionnaire à l'enfant (dans ce cas, #b), nous pouvons empêcher l'événement click de remonter jusqu'au parent (#a). Voici à quoi ressemblerait le gestionnaire de clics modifié :

function handler(event) {
    event.stopPropagation();
    // now do your stuff        
}
$('#a').add('#b').click(handler);
Copier après la connexion

Ce code garantit que les clics vers #b ne se propageront pas vers #a. De même, les clics vers #c ne se propageront pas vers #b et, par conséquent, pas vers #a. Par conséquent, l'événement click sur l'élément enfant n'affectera que ses propres enfants, empêchant ainsi le masquage involontaire d'éléments dans l'élément parent.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal