Maison >interface Web >js tutoriel >Apprenez à utiliser les événements bouillonnants pour obtenir des effets interactifs : exemple d'analyse d'événements bouillonnants JS
Analyse d'exemples d'événements bouillonnants JS : pour maîtriser comment utiliser les événements bouillonnants pour obtenir des effets interactifs, des exemples de code spécifiques sont nécessaires
Avec le développement d'Internet, JavaScript (JS) est devenu une technologie importante dans le développement front-end . Dans le développement front-end, les événements bouillonnants JS sont souvent utilisés pour obtenir des effets interactifs. Cet article présentera les concepts de base et l'utilisation des événements bouillonnants JS à travers des exemples de code spécifiques, et analysera comment utiliser les événements bouillonnants pour obtenir certains effets interactifs courants.
1. Concepts de base des événements bouillonnants JS
Dans les documents HTML, la structure des éléments est souvent une relation imbriquée. Lorsqu'un élément déclenche un événement, l'événement remonte jusqu'à l'élément parent jusqu'à ce qu'il atteigne l'élément racine du document. C'est le concept de base des événements bouillonnants JS. Les événements bouillonnants incluent les événements de clic courants, les événements d'entrée et de sortie de la souris, les événements de clavier, etc.
2. Utilisation spécifique des événements bouillonnants
<div id="container"> <div>元素1</div> <div>元素2</div> <div>元素3</div> </div>
var container = document.getElementById('container'); var elements = container.getElementsByTagName('div'); // 为每个元素绑定事件监听器 for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', function(event){ console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); }); } // 递归获取所有冒泡元素 function getBubblingElements(event) { var bubblingElements = []; var currentElement = event.target; while (currentElement !== document) { bubblingElements.push(currentElement.innerHTML); currentElement = currentElement.parentNode; } return bubblingElements; }
Dans le code, nous obtenons d'abord l'élément conteneur et ses sous-éléments, puis lions un écouteur d'événement click à chaque sous-élément. Lorsqu'un élément enfant est cliqué, l'écouteur imprime le contenu de l'élément actuel et de tous les éléments bulles.
当前元素: 元素3 冒泡元素: [元素3, 元素2, 元素1, #container]
Les résultats ci-dessus montrent que l'élément réellement cliqué est l'élément 3 et que le processus de bouillonnement passe par l'élément 2, l'élément 1 et l'élément conteneur (# conteneur) en séquence.
3. Utiliser des événements bouillonnants pour obtenir des effets interactifs
Après avoir maîtrisé les concepts de base et l'utilisation spécifique des événements bouillonnants, nous pouvons utiliser des événements bouillonnants pour obtenir certains effets interactifs courants. Ce qui suit prend l'annulation du bouillonnement, le proxy d'événement et la délégation d'événement comme exemple d'analyse.
// 为每个元素绑定事件监听器 for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', function(event){ console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); event.stopPropagation(); // 取消事件冒泡 }); }
Dans le code modifié, la méthode stopPropagation de l'objet événement est ajoutée en appelant cette méthode dans l'écouteur. peut annuler l'événement. De cette façon, lorsqu'un élément div est cliqué, seul l'élément actuel et son contenu seront affichés sur la console.
container.addEventListener('click', function(event){ if (event.target.tagName === 'DIV') { // 只处理div元素的点击事件 console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); } });
Dans le code modifié, liez l'écouteur d'événement à l'élément conteneur et jugez l'événement dans le code de l'écouteur. détermine si l'élément div est cliqué. De cette façon, quel que soit le nombre d’éléments div que nous ajoutons au conteneur, nous n’avons besoin que d’un seul écouteur d’événement.
container.addEventListener('click', function(event){ if (event.target.tagName === 'DIV') { // 只处理div元素的点击事件 console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); } });
Dans le code modifié, seul un écouteur d'événement click est ajouté pour l'élément conteneur, et Le code de l'écouteur détermine si le tagName de event.target est un élément div. De cette façon, quel que soit le nombre d'éléments div que nous ajoutons au conteneur, ils seront traités par le proxy de l'écouteur d'événements.
Résumé :
Cet article présente les concepts de base et l'utilisation des événements bouillonnants JS à travers des exemples de code spécifiques, et analyse en détail comment utiliser les événements bouillonnants pour obtenir certains effets interactifs courants, notamment l'annulation du bouillonnement, le proxy d'événements et la délégation d'événements. Maîtriser l'utilisation des événements bouillonnants peut améliorer l'efficacité des effets interactifs dans le développement front-end et offrir aux utilisateurs Web une meilleure expérience utilisateur. J'espère que cet article aidera les lecteurs à comprendre et à appliquer les événements bouillonnants JS.
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!