


Le comportement par défaut de la balise de l'élément parent et l'interaction entre les événements de clic
Le contenu de cet article concerne l'influence entre le comportement par défaut href de l'élément parent d'une balise et la réponse de l'événement click lié à l'élément enfant. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. , j'espère que cela vous aidera.
J'ai rencontré un problème lors du processus de développement. J'ai simplement écrit une démo. L'environnement d'exécution est Chrome 68.
Décrivez ce problème lorsqu'il y a une imbrication dans la balise a, la valeur par défaut. comportement de l'élément parent une balise Il y a un impact sur la réponse à l'événement click lié à l'élément enfant. Structure de la page :
nbsp;html> <meta> <meta> <meta> <title>a标签内部点击事件失效</title> <style> * { margin: 0; padding: 0; } .father { display: block; width: 500px; height: 200px; background-color: rgb(210, 111, 30); } .child-one { display: block; width: 200px; height: 50px; background-color: rgb(174, 43, 226); } .child-two { display: block; width: 200px; height: 50px; background-color: rgb(43, 226, 67); } .child-three { display: block; width: 200px; height: 50px; background-color: rgb(43, 137, 226); } </style> <a>父标签 <span> 子标签1 </span> <object> <a> 子标签2 </a> </object> <object> <a> 子标签3 </a> </object> </a> <script> let father = document.querySelector('.father'); let ele1 = document.querySelector('.child-one'); let ele2 = document.querySelector('.child-two'); let ele3 = document.querySelector('.child-three'); ele1.addEventListener('click', function (e) { e.stopPropagation(); // e.preventDefault(); alert('click child-one') window.location.href = 'child-one' }, false) ele2.addEventListener('click', function (e) { e.stopPropagation(); alert('click child-two') // window.location.href='child-two' }, false) ele3.addEventListener('click', function (e) { alert('click child-three') window.location.href = 'child-three' }, false) father.addEventListener('click', function (e) { alert('click father') window.location.href = 'father' }, false) </script>
L'exemple est le suivant (si la balise a est imbriquée, le navigateur l'analysera de manière incorrecte, elle est donc enveloppée avec une balise d'objet).
Effectuez l'opération :
Lorsque l'on clique sur la balise parent, 111 apparaît en premier, et puis passe au parent Le lien href de la balise.
Indique que onclick est exécuté avant hrefLorsque l'enfant-un est cliqué, l'événement de clic lié à l'élément est exécuté et une alerte apparaîtra, mais l'emplacement saute toujours au père.
Après avoir évité le bouillonnement, les résultats d'exécution ne répondent toujours pas aux attentes. Après avoir ajoutépreventDefault
, le propre saut de l'élément enfant est effectué.Lorsque l'enfant-deux est cliqué, un message de réponse apparaîtra et le lien href sautera.
Lorsque l'enfant-trois est cliqué,
click child-three
apparaît en premier, puishref child-three
, indiquant que l'événement de clic est exécuté avant le href.
Les quatre opérations ci-dessus sont toutes faciles à comprendre sauf 2. En 2, pourquoi le saut de href
dans l'élément parent est-il toujours exécuté après avoir empêché l'événement de bouillonner ?
Réflexion :
Tout d'abord, il est certain que le bouillonnement d'événements est bien bloqué car le onclick de l'élément parent n'est pas exécuté.
Donc, je suppose que le comportement par défaut de la balise ne peut pas être empêché en annulant le bouillonnement. Même si l'événement ne remonte pas jusqu'à l'élément parent, l'élément enfant s'exécutera toujours <a></a>
à l'intérieur du balise de l'élément parent. Comportement par défaut de l'étiquette. <a></a>
dans l'élément enfant pour empêcher le comportement par défaute.preventDefault()
, utilisez d'autres balises pour lier les événements de clic et l'enfant L'élément empêche le bouillonnement <a></a>
et lie l'événement de clic directement à la balise href
<a></a>
lien Quelle est la différence entre le lien balisé CSS et le chargement @import ?
Balise HTML : Résumé de l'utilisation de la balise img
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds





Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.
