Maison interface Web js tutoriel Délégation d'événement en javascript (tutoriel image et texte)

Délégation d'événement en javascript (tutoriel image et texte)

May 19, 2018 pm 02:53 PM
javascript js 教程

Cet article présente principalement des informations pertinentes sur l'explication détaillée de la délégation d'événement en JavaScript. Les amis qui en ont besoin peuvent s'y référer

J'ai vu une question d'entretien ces jours-ci, qui vous demandait probablement de donner 1 000 li Comment. dois-je ajouter un événement de clic ? La première impression de la plupart des gens peut être d'en ajouter un à chaque li. Si tel est le cas, on estime qu'ils seront GG lors de l'interview, nous avons ici retiré nos mécanismes de bouillonnement et de capture d'événements. ainsi que les mécanismes de délégation d'événements, examinons lentement ce qui précède

Parlons d'abord du bouillonnement d'événements et des mécanismes de capture d'événements. La capture d'événements a été proposée par Netscape. les deux sociétés étaient à couteaux tirés. Plus tard, le W3C n'a eu d'autre choix que d'adopter une méthode de compromis. Lorsqu'un événement se produit, il est d'abord capturé puis diffusé.

Habituellement, il existe trois façons d'écouter les événements. en js, à savoir :

 ele.addEventListener(type,listener,[useCapture]);//IE6~8 ne prend pas en charge

 ele.attachEvent ('on'+type,listener);//Supporté par IE6~10, non pris en charge par IE11

 ele.onClick=function(){} ;//Tous les navigateurs prennent en charge

La spécification w3c définit trois étapes d'événement, qui sont l'étape de capture, l'étape cible et l'étape de bouillonnement. Dans la réglementation du niveau dom2 spécifiée par w3c, c'est addEventListener qui écoute les événements. nous utiliserons addEventListener pour expliquer. Tout d'abord, les bulles sont comme lorsque vous jetez une pierre dans l'eau, les bulles dans l'eau surgissent du bas, ce qui signifie qu'une fois l'événement déclenché, les bulles montent. L'élément enfant vers l'élément parent déclenche la direction, tandis que le mécanisme de capture est exactement le contraire. Le mécanisme de capture déclenche des événements de l'élément parent vers l'élément enfant, et le troisième paramètre de la fonction addEventListener est utilisé pour décider d'utiliser ou non l'élément enfant. mécanisme de capture ou mécanisme de bouillonnement. Lorsque useCapture est vrai, c'est le mécanisme de capture. Lorsque useCapture est faux, c'est le mécanisme de bouillonnement. Regardons l'exemple :

Copier le code

<p class="parent">
  <p class="child">

  </p>
</p>
<script>
  var parent = document.getElementsByClassName(&#39;parent&#39;)[0];
  var child = document.getElementsByClassName(&#39;child&#39;)[0];

  parent.addEventListener(&#39;click&#39;,function(){
    console.log("这里是父元素");
  },false);
  child.addEventListener(&#39;click&#39;,function(){
    console.log("这里是子元素");
  },false);
</script>
Copier après la connexion
<. 🎜>

Lorsque nous cliquons sur L'élément enfant est affiché dans l'image ci-dessus. Lorsque nous changeons false en true, nous constaterons que l'ordre d'exécution sera inversé. C'est la différence entre le bouillonnement d'événements et. capture. Ils sont tout le contraire,

Ensuite, l'inconvénient de l'utilisation de ce mécanisme de liaison est qu'il est très fastidieux de lier des événements à chaque objet. nous voulons supprimer un événement ou modifier un événement. , et plus important encore, nous avons augmenté l'association entre les nœuds JavaScript et DOM, et s'il y a une référence circulaire, cela risque de provoquer des fuites de mémoire, <🎜. >

Alors comment résoudre cet inconvénient Une méthode est la délégation d'événements. Cette méthode vous permet d'éviter d'ajouter des événements à chaque nœud un par un. Ce qu'elle fait, c'est lier ces événements d'écoute aux éléments parents de ces nœuds. element La fonction d'écoute de on détermine automatiquement quel élément enfant a déclenché l'événement, afin que l'élément enfant qui a déclenché l'événement puisse être utilisé. L'exemple que nous donnons ici est un exemple donné par Davidwalsh :

Maintenant, nous avons un parent. élément ul et plusieurs éléments enfants li,

Ce que nous voulons réaliser maintenant, c'est que lorsque nous cliquons sur chaque nœud li, le contenu du nœud li sera affiché, selon la méthode d'écriture ci-dessus, vous pouvez sélectionner ces li, leur ajouter ces méthodes, puis les supprimer lorsqu'elles ne sont plus nécessaires. S'il y en a 100 li ou 1 000 li, cela deviendra votre cauchemar. Mieux vaut ajouter un événement d'écoute au parent. élément. La question suivante est de savoir comment déterminer sur quel li a été cliqué ? Nous pouvons juger la cible de l'événement en cours dans l'événement d'écoute pour déterminer si c'est le nœud que nous recherchons. Ici, nous avons un exemple simple :
<ul id="parent-list">
  <li id="post-1">Item 1</li>
  <li id="post-2">Item 2</li>
  <li id="post-3">Item 3</li>
  <li id="post-4">Item 4</li>
  <li id="post-5">Item 5</li>
  <li id="post-6">Item 6</li>
</ul>
Copier après la connexion

Lorsqu'un événement de clic se produit dans ul, comme addEventListener est un événement bouillonnant par défaut, l'événement d'écoute sera exécuté lorsque l'événement sous-jacent bouillonne. Après le déclenchement de l'événement. Enfin, nous vérifions s'il s'agit de l'élément cible. nous recherchons. Sinon, il sera ignoré. Nous pouvons alors non seulement vérifier si la balise de l'élément cible est l'élément cible dont nous avons besoin, mais nous pouvons également utiliser l'attribut ou le nom de classe de l'élément cible. pour la détection, utilisez l'API ele.maeches pour le traitement
// 找到父元素,绑定一个监听事件
document.getElementById("parent-list").addEventListener("click", function(e) {
  // e.target是点击的元素
  // 如果它是li元素
  if(e.target && e.target.nodeName == "LI") {
    //
    console.log("List item ", e.target.id.replace("post-", ""), " was clicked!");
  }
});
Copier après la connexion

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.
document.getElementById("myp").addEventListener("click",function(e) {
  // e.target 就是当前被点击的元素
 if (e.target && e.target.matches("a.classA")) {
  console.log("Anchor element clicked!");
  }
});
Copier après la connexion

Articles connexes :

Vue.

jsÉtapes détaillées pour développer le framework mpvue

Charger et supprimer

Explication détaillée des étapes des fichiers js et css

Comment écrire du JS

lorsque vous devez parcourir plusieurs irréguliers tableaux dimensionnels

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines 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)

Tutoriel sur l'utilisation de Dewu Tutoriel sur l'utilisation de Dewu Mar 21, 2024 pm 01:40 PM

Dewu APP est actuellement un logiciel d'achat de marque très populaire, mais la plupart des utilisateurs ne savent pas comment utiliser les fonctions de Dewu APP. Le guide didacticiel d'utilisation le plus détaillé est compilé ci-dessous. Ensuite, l'éditeur présente Dewuduo aux utilisateurs. tutoriels. Les utilisateurs intéressés peuvent venir y jeter un oeil ! Tutoriel sur l'utilisation de Dewu [2024-03-20] Comment utiliser l'achat à tempérament Dewu [2024-03-20] Comment obtenir des coupons Dewu [2024-03-20] Comment trouver le service client manuel Dewu [2024-03- 20] Comment vérifier le code de ramassage de Dewu [2024-03-20] Où trouver l'achat de Dewu [2024-03-20] Comment ouvrir Dewu VIP [2024-03-20] Comment demander le retour ou l'échange de Dewu

En été, vous devez essayer de photographier un arc-en-ciel En été, vous devez essayer de photographier un arc-en-ciel Jul 21, 2024 pm 05:16 PM

Après la pluie en été, vous pouvez souvent voir une scène météorologique spéciale magnifique et magique : l'arc-en-ciel. C’est aussi une scène rare que l’on peut rencontrer en photographie, et elle est très photogénique. Il y a plusieurs conditions pour qu’un arc-en-ciel apparaisse : premièrement, il y a suffisamment de gouttelettes d’eau dans l’air, et deuxièmement, le soleil brille sous un angle plus faible. Par conséquent, il est plus facile de voir un arc-en-ciel l’après-midi, après que la pluie s’est dissipée. Cependant, la formation d'un arc-en-ciel est grandement affectée par les conditions météorologiques, la lumière et d'autres conditions, de sorte qu'il ne dure généralement que peu de temps, et la meilleure durée d'observation et de prise de vue est encore plus courte. Alors, lorsque vous rencontrez un arc-en-ciel, comment pouvez-vous l'enregistrer correctement et prendre des photos de qualité ? 1. Recherchez les arcs-en-ciel En plus des conditions mentionnées ci-dessus, les arcs-en-ciel apparaissent généralement dans la direction de la lumière du soleil, c'est-à-dire que si le soleil brille d'ouest en est, les arcs-en-ciel sont plus susceptibles d'apparaître à l'est.

Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Tutoriel sur la façon de désactiver le son de paiement sur WeChat Tutoriel sur la façon de désactiver le son de paiement sur WeChat Mar 26, 2024 am 08:30 AM

1. Ouvrez d’abord WeChat. 2. Cliquez sur [+] dans le coin supérieur droit. 3. Cliquez sur le code QR pour collecter le paiement. 4. Cliquez sur les trois petits points dans le coin supérieur droit. 5. Cliquez pour fermer le rappel vocal de l'arrivée du paiement.

Tutoriel DisplayX (logiciel de test de moniteur) Tutoriel DisplayX (logiciel de test de moniteur) Mar 04, 2024 pm 04:00 PM

Tester un moniteur lors de son achat est un élément essentiel pour éviter d'en acheter un endommagé. Aujourd'hui, je vais vous apprendre à utiliser un logiciel pour tester le moniteur. Étape de la méthode 1. Tout d'abord, recherchez et téléchargez le logiciel DisplayX sur ce site Web, installez-le et ouvrez-le, et vous verrez de nombreuses méthodes de détection proposées aux utilisateurs. 2. L'utilisateur clique sur le test complet régulier. La première étape consiste à tester la luminosité de l'écran. L'utilisateur ajuste l'affichage pour que les cases soient clairement visibles. 3. Cliquez ensuite sur la souris pour accéder au lien suivant. Si le moniteur peut distinguer chaque zone noire et blanche, cela signifie qu'il est toujours bon. 4. Cliquez à nouveau sur le bouton gauche de la souris et vous verrez le test des niveaux de gris du moniteur. Plus la transition des couleurs est douce, meilleur est le moniteur. 5. De plus, dans le logiciel displayx, nous

Quel logiciel est Photoshop5 ? -tutoriel d'utilisation de Photoshopcs5 Quel logiciel est Photoshop5 ? -tutoriel d'utilisation de Photoshopcs5 Mar 19, 2024 am 09:04 AM

PhotoshopCS est l'abréviation de Photoshop Creative Suite. C'est un logiciel produit par Adobe et est largement utilisé dans la conception graphique et le traitement d'images. En tant que novice apprenant PS, laissez-moi vous expliquer aujourd'hui ce qu'est le logiciel photoshopcs5 et comment l'utiliser. 1. Qu'est-ce que Photoshop CS5 ? Adobe Photoshop CS5 Extended est idéal pour les professionnels des domaines du cinéma, de la vidéo et du multimédia, les graphistes et web designers qui utilisent la 3D et l'animation, ainsi que les professionnels des domaines de l'ingénierie et des sciences. Rendu une image 3D et fusionnez-la dans une image composite 2D. Modifiez facilement des vidéos

Les experts vous apprennent ! La bonne façon de couper de longues images sur les téléphones mobiles Huawei Les experts vous apprennent ! La bonne façon de couper de longues images sur les téléphones mobiles Huawei Mar 22, 2024 pm 12:21 PM

Avec le développement continu des téléphones intelligents, les fonctions des téléphones mobiles sont devenues de plus en plus puissantes, parmi lesquelles la fonction de prise de photos longues est devenue l'une des fonctions importantes utilisées par de nombreux utilisateurs dans la vie quotidienne. De longues captures d'écran peuvent aider les utilisateurs à enregistrer une longue page Web, un enregistrement de conversation ou une image en même temps pour une visualisation et un partage faciles. Parmi les nombreuses marques de téléphones mobiles, les téléphones mobiles Huawei sont également l'une des marques les plus respectées par les utilisateurs, et leur fonction de recadrage de longues images est également très appréciée. Cet article vous présentera la bonne méthode pour prendre de longues photos sur les téléphones mobiles Huawei, ainsi que quelques conseils d'experts pour vous aider à mieux utiliser les téléphones mobiles Huawei.

Tutoriel PHP : Comment convertir un type int en chaîne Tutoriel PHP : Comment convertir un type int en chaîne Mar 27, 2024 pm 06:03 PM

Tutoriel PHP : Comment convertir un type Int en chaîne En PHP, la conversion de données entières en chaîne est une opération courante. Ce didacticiel expliquera comment utiliser les fonctions intégrées de PHP pour convertir le type int en chaîne, tout en fournissant des exemples de code spécifiques. Utiliser cast : En PHP, vous pouvez utiliser cast pour convertir des données entières en chaîne. Cette méthode est très simple. Il vous suffit d'ajouter (string) avant les données entières pour les convertir en chaîne. Vous trouverez ci-dessous un exemple de code simple

See all articles