bubbling, capturing
버블링과 캡쳐링
-
한 요소에 이벤트가 발생하면, 이 요소에 할당된 핸들러가 작동하고, 이어서 부모 요소의 핸들러가 동작합니다. 가장 최상단의 조상요소를 만날 때까지 이 과정이 반복되면서 요소 각각에 할당된 핸들러가 동작합니다.
다만 focus이벤트와 같이 버블링 되지 않는 이벤트도 있습니다.
버블링 중단하기
event.stopPropagation() 으로 버블링을 중단 할 수 있습니다!
요소에 할당된 다른 핸들러의 동작도 막으려면 event.stopImmediatePropagation()을 사용해야 합니다.
캡처링
1. 캡처링 단계 – 이벤트가 하위 요소로 전파되는 단계
HTML → BODY → FORM → DIV
2. 타깃 단계 – 이벤트가 실제 타깃 요소에 전달되는 단계
P
3. 버블링 단계 – 이벤트가 상위 요소로 전파되는 단계
DIV → FORM → BODY → HTML
<이미지참고>javascript.info
<div id="menu">
<button data-action="save">저장하기</button>
<button data-action="load">불러오기</button>
<button data-action="search">검색하기</button>
</div>
onClick(event) {
let action = event.target.dataset.action;
if (action) {
this[action]();
}
}
Reference
KoJavaScriptInfo