Maison >interface Web >js tutoriel >Maîtriser le bouillonnement et la capture d'événements en JavaScript
La propagation des événements en JavaScript décrit la manière dont les événements traversent le DOM après avoir été déclenchés. Il y a deux phases principales : Event Bubbling et Event Capture. Comprendre ces concepts est crucial pour gérer efficacement les auditeurs d'événements.
Lorsqu'un événement est déclenché, il se propage à travers le DOM dans l'ordre suivant :
Dans la phase de bouillonnement, l'événement commence au niveau de l'élément cible et remonte jusqu'à ses ancêtres.
<div> <pre class="brush:php;toolbar:false">document.getElementById("parent").addEventListener("click", function() { console.log("Parent clicked"); }); document.getElementById("child").addEventListener("click", function() { console.log("Child clicked"); });
Sortie en cliquant sur le bouton :
Child clicked Parent clicked
Utilisez la méthode stopPropagation() pour empêcher l'événement de se propager davantage.
document.getElementById("child").addEventListener("click", function(event) { event.stopPropagation(); console.log("Child clicked"); });
Dans la phase de capture, l'événement se déplace de la racine de l'arborescence DOM jusqu'à l'élément cible.
document.getElementById("parent").addEventListener( "click", function() { console.log("Parent clicked"); }, true // Enables capturing phase ); document.getElementById("child").addEventListener("click", function() { console.log("Child clicked"); });
Sortie en cliquant sur le bouton :
Parent clicked Child clicked
Feature | Event Bubbling | Event Capturing |
---|---|---|
Order | From target to ancestors | From root to target |
Default Behavior | Enabled | Disabled unless specified |
Use Case | Commonly used for delegation | Less commonly used |
La délégation d'événements profite du bouillonnement d'événements pour gérer efficacement les événements de plusieurs éléments enfants.
<div> <pre class="brush:php;toolbar:false">document.getElementById("parent").addEventListener("click", function() { console.log("Parent clicked"); }); document.getElementById("child").addEventListener("click", function() { console.log("Child clicked"); });
Utilisez la méthode PreventDefault() pour arrêter le comportement par défaut d'un élément sans affecter la propagation.
Child clicked Parent clicked
document.getElementById("child").addEventListener("click", function(event) { event.stopPropagation(); console.log("Child clicked"); });
La maîtrise du bouillonnement et de la capture d'événements garantit un meilleur contrôle sur les applications basées sur les événements et améliore l'efficacité du code.
Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.
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!