Event Flow를 먼저 알아보자 .
Event Flow는 어떤 요소에서 이벤트가 발생했을 때, 그 이벤트를 전파하여 감지하는 흐름을 말한다.
<tr onclick=()=>{console.log('부모')}>
<td onclick=()=>{console.log('자식')}></td>
//td 태그를 눌렀지만 tr까지 console이 출력된다
//순서는 자식, 부모
</tr>
<body onclick="alert(`버블링은 여기까지 도달하지 못합니다.`)">
<button onclick="event.stopPropagation()">클릭해 주세요.</button>
</body>
//위의 tr,td 태그에서는 부모, 자식순으로 출력됨
elem.addEventListener(..., {capture: true})
// 아니면, 아래처럼 true를 써줘도 됨, 핸들러는 캡쳐링 단계에서 동작
// capture: false가 디폴트, 핸들러는 버블링 단계에서 동작
elem.addEventListener(..., true)
addEventListener(..., true)
로 할당한 핸들러를 동작시킴, 이후 타겟 요소인 핸들러가 호출됨{capture:false}
거나 false
거나 세번째 인수가 없는 경우 이벤트 버블링으로 자식에서 부모로 이벤트가 전파된다출처: https://cheonmro.github.io/2018/09/03/event-flow/
https://joshua1988.github.io/web-development/javascript/event-propagation-delegation/
https://ko.javascript.info/bubbling-and-capturing