Le bouillonnement et la capture d'événements jouent un rôle crucial dans la propagation des événements au sein de l'API HTML DOM. Pour comprendre leur fonctionnalité, examinons les subtilités de ces deux concepts.
Bubbling d'événements vs capture d'événements
Lorsqu'un événement se produit dans un élément imbriqué dans un autre élément , et que les deux éléments ont des gestionnaires d'événements enregistrés pour cet événement particulier, le mode de propagation de l'événement détermine l'ordre dans lequel les éléments reçoivent le event.
Trickling vs. Bubbling
La capture est également connue sous le nom de « trickling », un terme qui permet de se souvenir de l'ordre de propagation : « ruissellement, bulle up."
Support des navigateurs
Considérations relatives aux performances
Le bouillonnement d'événements peut avoir des performances légèrement inférieures dans les DOM complexes par rapport aux événements. capture.
Usage
Nous utilisons la méthode addEventListener(type, listening, useCapture) pour enregistrer les gestionnaires d'événements en mode bouillonnement (par défaut) ou en mode capture. Pour utiliser le modèle de capture, le troisième argument doit être défini sur true.
Exemple
Considérez la structure HTML suivante :
Si un événement click se produit dans l'élément li :
Ressources supplémentaires
Démonstration interactive
La démonstration interactive suivante L'exemple illustre les phases de capture et de bouillonnement de la propagation des événements :
var logElement = document.getElementById('log'); function log(msg) { logElement.innerHTML = ('' msg '
'); } function capture() { log('capture: ' this.firstChild.nodeValue.trim()); } function bubble() { log('bubble: ' this.firstChild.nodeValue.trim()); } var divs = document.getElementsByTagName('div'); for (var i = 0; iLorsque vous cliquez sur l'un des éléments en surbrillance, observez la phase de capture d'événement se produisant en premier, suivie de la phase de bouillonnement.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3