이벤트 버블링 및 캡처는 HTML DOM API 내에서 이벤트 전파에 중요한 역할을 합니다. 기능을 이해하기 위해 이 두 개념의 복잡성을 자세히 살펴보겠습니다.
이벤트 버블링과 이벤트 캡처
다른 요소 내에 중첩된 요소에서 이벤트가 발생하는 경우 , 두 요소 모두 해당 특정 이벤트에 대한 이벤트 핸들러를 등록한 경우 이벤트 전파 모드에 따라 요소가 이벤트를 수신하는 순서가 결정됩니다. event.
살수 vs. 버블링
캡처는 "살수"라고도 알려져 있으며 전파 순서를 기억하는 데 도움이 되는 용어입니다. "물방울, 거품 up."
브라우저 지원
성능 고려 사항
이벤트 버블링은 복잡한 DOM에 비해 성능이 약간 낮을 수 있습니다. 이벤트에 캡처.
사용
addEventListener(type, Listener, useCapture) 메서드를 활용하여 버블링(기본값) 또는 캡처 모드에서 이벤트 핸들러를 등록합니다. 캡처 모델을 사용하려면 세 번째 인수를 true로 설정해야 합니다.
예
다음 HTML 구조를 고려하세요.
<div> <ul> <li></li> </ul> </div>
If li 요소에서 클릭 이벤트가 발생합니다.
추가 자료
대화형 데모
다음 대화형 예는 캡처 및 버블링을 보여줍니다. 이벤트 전파 단계:
var logElement = document.getElementById('log'); function log(msg) { logElement.innerHTML += ('<p>' + msg + '</p>'); } 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; i < divs.length; i++) { divs[i].addEventListener('click', capture, true); divs[i].addEventListener('click', bubble, false); }
강조 표시된 요소를 클릭할 때 이벤트 캡처 단계가 먼저 발생하고 이어서 버블링 단계가 발생합니다.
위 내용은 이벤트 버블링과 캡처: 이벤트 전파 모드가 DOM 이벤트 처리에 어떤 영향을 미칩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!