Maison >interface Web >js tutoriel >Comment puis-je empêcher la propagation d'événements en HTML à l'aide des attributs onclick en ligne ?

Comment puis-je empêcher la propagation d'événements en HTML à l'aide des attributs onclick en ligne ?

DDD
DDDoriginal
2024-12-08 22:13:17384parcourir

How Can I Prevent Event Propagation in HTML Using Inline onclick Attributes?

Prévenir la propagation des événements avec les attributs Onclick en ligne

Lors de la gestion des événements en HTML, il est souvent nécessaire de contrôler la façon dont les événements se propagent à travers le DOM. Cela est particulièrement vrai lors de la gestion d'éléments imbriqués pouvant partager des écouteurs d'événements.

Considérons l'exemple suivant :

<div onclick="alert('you clicked the header')" class="header">
  <span onclick="alert('you clicked inside the header');">something inside the header</span>
</div>

Dans ce cas, les éléments

(en-tête) et les éléments ont des attributs onclick en ligne qui affichent une alerte lorsque vous cliquez dessus. Par défaut, en cliquant sur le bouton l'élément déclenchera à la fois l'élément et
événements, ce qui peut ne pas être le comportement souhaité.

Pour empêcher la propagation des événements et déclencher uniquement le événement, nous devons empêcher l'événement de se propager jusqu'à l'élément parent. Ceci peut être réalisé en utilisant les techniques suivantes :

Utilisation de event.stopPropagation() (navigateurs modernes)

<span onclick="event.stopPropagation(); alert('you clicked inside the header');">something inside the header</span>

Utilisation de window.event.cancelBubble (Internet Explorer)

<span onclick="window.event.cancelBubble = true; alert('you clicked inside the header');">something inside the header</span>

En ajoutant ces lignes à l'attribut onclick du , nous empêchons la propagation de l'événement vers l'élément parent

élément, nous permettant de gérer l'événement click indépendamment pour chaque élément.

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