Maison > interface Web > js tutoriel > Comment empêcher la propagation des événements des éléments enfants aux éléments parents en HTML ?

Comment empêcher la propagation des événements des éléments enfants aux éléments parents en HTML ?

Mary-Kate Olsen
Libérer: 2024-12-05 04:12:09
original
202 Les gens l'ont consulté

How to Prevent Event Propagation from Child to Parent Elements in HTML?

Prévenir la propagation des événements avec l'écouteur d'événements Inline Onclick

En HTML, les écouteurs d'événements en ligne nous permettent d'ajouter directement la gestion des événements dans la balise de l'élément. Cependant, nous rencontrons parfois des situations dans lesquelles l'événement d'un élément enfant ne devrait pas déclencher l'événement de l'élément parent.

Problème :

Considérez le code suivant :

<div onclick="alert('you clicked the header')" class="header">
  <span onclick="alert('you clicked inside the header');">something inside the header</span>
</div>
Copier après la connexion

Dans cet extrait, lorsque l'utilisateur clique sur le span, l'événement click du span et l'événement click du div sont tous deux déclenché.

Solution :

Pour arrêter la propagation des événements du span vers le div, nous pouvons utiliser la méthode event.stopPropagation() :

<span onclick="event.stopPropagation(); alert('you clicked inside the header');">something inside the header</span>
Copier après la connexion

En appelant event.stopPropagation(), nous empêchons l'événement de remonter jusqu'à l'élément parent, isolant ainsi l'événement click de l'élément parent. span.

Alternative pour IE :

Pour les anciennes versions d'Internet Explorer, qui ne prennent pas en charge event.stopPropagation(), nous pouvons utiliser window.event.cancelBubble = true :

<span onclick="window.event.cancelBubble = true; alert('you clicked inside the header');">something inside the header</span>
Copier après la connexion

Cette méthode obtient le même résultat en annulant explicitement la propagation de l'événement.

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