Maison interface Web js tutoriel Conseils pratiques et études de cas pour éviter que les incidents ne se multiplient

Conseils pratiques et études de cas pour éviter que les incidents ne se multiplient

Jan 13, 2024 pm 03:28 PM
事件冒泡 Bloquer les événements Conseils et études de cas

Conseils pratiques et études de cas pour éviter que les incidents ne se multiplient

Conseils pratiques et analyse de cas pour éviter le bouillonnement d'événement

Le bouillonnement d'événement signifie que dans l'arborescence DOM, lorsqu'un élément déclenche un événement, l'événement remonte jusqu'à l'élément parent dans l'arborescence DOM jusqu'au nœud racine. Ce mécanisme de bouillonnement peut parfois entraîner des problèmes et des erreurs inattendus. Afin d’éviter que ce problème ne se produise, nous devons apprendre à utiliser certaines techniques pratiques pour empêcher que les événements ne se déclenchent. Cet article présentera certaines techniques couramment utilisées pour empêcher la propagation d'événements, les analysera avec des cas et fournira des exemples de code spécifiques.

1. Utilisez la méthode stopPropagation de l'objet événement

En JavaScript, l'objet événement (event) fournit une méthode stopPropagation, qui peut être utilisée pour empêcher l'événement de continuer à bouillonner. L'utilisation de cette méthode est très simple, il suffit d'appeler event.stopPropagation() dans la fonction de traitement des événements.

Par exemple, il y a un bouton et un élément parent d'un événement click dans une page. Lorsque le bouton est cliqué, empêchez l'événement click de remonter jusqu'à l'élément parent :

<div id="parent">
  <button id="btn">点击按钮</button>
</div>

<script>
  const parent = document.getElementById('parent');
  const btn = document.getElementById('btn');

  btn.addEventListener('click', function(event) {
    event.stopPropagation();
    console.log('点击了按钮');
  });

  parent.addEventListener('click', function() {
    console.log('点击了父元素');
  });
</script>
Copier après la connexion

Dans le code ci-dessus, après le bouton. est cliqué, la sortie dans la console est Seulement « cliqué sur le bouton » mais « cliqué sur l'élément parent » n'a pas été déclenché, indiquant que la propagation de l'événement a été empêchée avec succès en appelant la méthode stopPropagation.

2. Utilisez l'attribut CancelBubble de l'objet événement

En plus d'utiliser la méthode stopPropagation, l'objet événement fournit également un attribut CancelBubble, qui est une valeur booléenne. Vous pouvez empêcher les événements de se propager en définissant la propriété CancelBubble sur true.

Par exemple, dans une page, il y a un lien et un élément parent d'événement de clic Lorsque vous cliquez sur le lien, empêchez l'événement de clic de remonter jusqu'à l'élément parent :

<div id="parent">
  <a href="#" id="link">点击链接</a>
</div>

<script>
  const parent = document.getElementById('parent');
  const link = document.getElementById('link');

  link.addEventListener('click', function(event) {
    event.cancelBubble = true;
    console.log('点击了链接');
  });

  parent.addEventListener('click', function() {
    console.log('点击了父元素');
  });
</script>
Copier après la connexion

Dans le code ci-dessus, après avoir cliqué sur le lien. , la sortie dans la console est Seulement "cliqué sur le lien" mais "cliqué sur l'élément parent" n'a pas été déclenché, indiquant que la propagation de l'événement a été empêchée avec succès en définissant l'attribut CancelBubble sur true.

3. Analyse de cas

Nous utilisons maintenant un cas spécifique pour analyser plus en détail les scénarios et les techniques permettant d'empêcher la propagation d'événements.

Supposons qu'il y ait plusieurs éléments div imbriqués dans une page et que chaque élément div ait son propre événement de clic. Maintenant, ce que nous voulons réaliser, c'est que lorsque l'on clique sur le div le plus interne, seul l'événement click du div est déclenché, mais pas l'événement click de son élément parent.

<div id="outer" style="background: yellow;">
  <div id="middle" style="background: blue;">
    <div id="inner" style="background: red;"></div>
  </div>
</div>

<script>
  const outer = document.getElementById('outer');
  const middle = document.getElementById('middle');
  const inner = document.getElementById('inner');

  outer.addEventListener('click', function() {
    console.log('点击了外层div');
  });

  middle.addEventListener('click', function() {
    console.log('点击了中间div');
  });

  inner.addEventListener('click', function(event) {
    event.stopPropagation();
    console.log('点击了最内层div');
  });
</script>
Copier après la connexion

Dans le code ci-dessus, lorsque nous cliquons sur le div le plus interne, la seule sortie dans la console est "cliqué sur le div le plus interne", mais "cliqué sur le div du milieu" et "cliqué sur le div externe" ne l'est pas. déclenché, indiquant que la propagation de l'événement a été empêchée avec succès en appelant la méthode stopPropagation, répondant ainsi à nos besoins.

Pour résumer, en utilisant la méthode stopPropagation ou la propriété CancelBubble de l'objet événement, vous pouvez facilement empêcher l'événement de bouillonner. Dans le développement réel, il est important de choisir des techniques appropriées pour éviter la propagation d'événements en fonction de besoins spécifiques. Espérons que cet article vous aidera à mieux appliquer les techniques permettant d’éviter les bulles d’événements.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comprendre le mécanisme de bouillonnement d'événements : Pourquoi un clic sur un élément enfant affecte-t-il l'événement de l'élément parent ? Comprendre le mécanisme de bouillonnement d'événements : Pourquoi un clic sur un élément enfant affecte-t-il l'événement de l'élément parent ? Jan 13, 2024 pm 02:55 PM

Comprendre le bouillonnement d'événements : pourquoi un clic sur un élément enfant déclenche-t-il un événement sur l'élément parent ? Le bouillonnement d'événements signifie que dans une structure d'éléments imbriqués, lorsqu'un élément enfant déclenche un événement, l'événement sera transmis à l'élément parent couche par couche comme un bouillonnement, jusqu'à l'élément parent le plus à l'extérieur. Ce mécanisme permet aux événements sur les éléments enfants de se propager dans toute l'arborescence des éléments et de déclencher tour à tour tous les éléments associés. Pour mieux comprendre le bouillonnement d'événements, examinons un exemple de code spécifique. Code HTML : <divid="parent&q

Pourquoi le bouillonnement d'événements se déclenche-t-il deux fois ? Pourquoi le bouillonnement d'événements se déclenche-t-il deux fois ? Feb 22, 2024 am 09:06 AM

Pourquoi le bouillonnement d'événements se déclenche-t-il deux fois ? Le bouillonnement d'événement (Event Bubbling) signifie que dans le DOM, lorsqu'un élément déclenche un événement (comme un événement de clic), l'événement bouillonne de l'élément vers l'élément parent jusqu'à ce qu'il bouillonne vers l'objet document de niveau supérieur. La diffusion d'événements fait partie du modèle d'événement DOM, qui permet aux développeurs de lier des écouteurs d'événements aux éléments parents, de sorte que lorsque des éléments enfants déclenchent des événements, ceux-ci puissent être capturés et traités via le mécanisme de diffusion. Cependant, les développeurs rencontrent parfois des événements qui se déclenchent deux fois.

Raisons et solutions de l'échec de jQuery .val() Raisons et solutions de l'échec de jQuery .val() Feb 20, 2024 am 09:06 AM

Titre : Raisons et solutions de l'échec de jQuery.val() Dans le développement front-end, jQuery est souvent utilisé pour faire fonctionner des éléments DOM. La méthode .val() est largement utilisée pour obtenir et définir la valeur des éléments de formulaire. Cependant, nous rencontrons parfois des situations où la méthode .val() échoue, entraînant l'incapacité d'obtenir ou de définir correctement la valeur de l'élément de formulaire. Cet article explorera les causes de l'échec de .val(), fournira les solutions correspondantes et joindra des exemples de code spécifiques. 1.Méthode d'analyse des causes.val()

Pourquoi l'événement click dans js ne peut-il pas être exécuté à plusieurs reprises ? Pourquoi l'événement click dans js ne peut-il pas être exécuté à plusieurs reprises ? May 07, 2024 pm 06:36 PM

Les événements de clic en JavaScript ne peuvent pas être exécutés à plusieurs reprises en raison du mécanisme de propagation des événements. Pour résoudre ce problème, vous pouvez prendre les mesures suivantes : Utiliser la capture d'événement : Spécifiez un écouteur d'événement à déclencher avant que l'événement ne se déclenche. Remise des événements : utilisez event.stopPropagation() pour arrêter le bouillonnement des événements. Utilisez une minuterie : déclenchez à nouveau l'écouteur d'événements après un certain temps.

Pour quels scénarios les modificateurs d'événements dans vue peuvent-ils être utilisés ? Pour quels scénarios les modificateurs d'événements dans vue peuvent-ils être utilisés ? May 09, 2024 pm 02:33 PM

Les modificateurs d'événements Vue.js sont utilisés pour ajouter des comportements spécifiques, notamment : empêcher le comportement par défaut (.prevent) arrêter le bouillonnement d'événements (.stop) événement ponctuel (.once) capturer l'événement (.capture) écouter passivement les événements (.passive) Adaptatif modificateur (.self)Modificateur de touche (.key)

Pourquoi le mécanisme de bouillonnement d'événements se déclenche-t-il deux fois ? Pourquoi le mécanisme de bouillonnement d'événements se déclenche-t-il deux fois ? Feb 25, 2024 am 09:24 AM

Pourquoi le bouillonnement d’événements se produit-il deux fois de suite ? La diffusion d'événements est un concept important dans le développement Web. Cela signifie que lorsqu'un événement est déclenché dans un élément HTML imbriqué, l'événement remonte de l'élément le plus interne vers l'élément le plus externe. Ce processus peut parfois prêter à confusion. Un problème courant est que la diffusion d'événements se produit deux fois de suite. Afin de mieux comprendre pourquoi le bouillonnement d'événements se produit deux fois de suite, regardons d'abord un exemple de code :

Quels événements JS ne bouillonnent pas ? Quels événements JS ne bouillonnent pas ? Feb 19, 2024 pm 09:56 PM

Quelles sont les situations dans les événements JS qui ne bouillonneront pas ? Le bouillonnement d'événements (Event Bubbling) signifie qu'après le déclenchement d'un événement sur un certain élément, l'événement sera transmis vers le haut le long de l'arborescence DOM, de l'élément le plus interne à l'élément le plus externe. Cette méthode de transmission est appelée bouillonnement d'événements. Cependant, tous les événements ne peuvent pas surgir. Il existe des cas particuliers dans lesquels les événements ne surgissent pas. Cet article présentera les situations en JavaScript dans lesquelles les événements ne bouillonneront pas. 1. Utilisez stopPropagati

Qu'est-ce que le bouillonnement d'événements ? Analyse approfondie du mécanisme de bouillonnement des événements Qu'est-ce que le bouillonnement d'événements ? Analyse approfondie du mécanisme de bouillonnement des événements Feb 20, 2024 pm 05:27 PM

Qu’est-ce que le bouillonnement d’événements ? Analyse approfondie du mécanisme de diffusion d'événements. La diffusion d'événements est un concept important dans le développement Web, qui définit la manière dont les événements sont diffusés sur la page. Lorsqu'un événement sur un élément est déclenché, l'événement sera transmis à partir de l'élément le plus interne et transmis vers l'extérieur jusqu'à ce qu'il soit transmis à l'élément le plus externe. Cette méthode de livraison est comme des bulles bouillonnant dans l’eau, c’est pourquoi on l’appelle bouillonnement événementiel. Dans cet article, nous analyserons en profondeur le mécanisme de bouillonnement d’événements. Le principe du bouillonnement d’événements peut être compris à travers un exemple simple. Supposons que nous ayons un H

See all articles