특정 요소 a에서 이벤트를 트리거했을 때
1. window 객체에서 요소 a까지 이벤트가 전파된다 (Capturing phase 캡처링 단계)
2. 요소 a
3. 요소 a에서 window 객체로 이벤트 전파 (Bubbleing phase 버블링 단계)
이때 요소 a의 부모인 요소 b에 addEventListener 로 eventhandler 를 붙이면,
elementB.addEventListener(..., {capture: true})
elementB.addEventListener(..., true)
Event.target
: 이벤트가 발생한 가장 구체적인 (안쪽의) 요소Event.currentTarget
: this, eventListener 가 달린 요소Event.eventPhase
: 현재 이벤트 단계 (캡처링=1, 타깃=2, 버블링=3)Event.stopPropagation()
: 상위 요소로 이벤트 전파를 하지 않는다 (버블링 단계를 일으키지 않는다)Event.preventDefault()
: 해당 이벤트의 기본 동작을 실행하지 않는다 Event.target
의 .classList
, .matches(선택자)
등을 확인해서 어느 자식 요소에서 이벤트가 발생했는지 파악한다