element.addEventListner(’click’, event ⇒ {
console.log(event.target, event.currentTarget) ← target은 내가 클릭한 요소, currentTarget은 내가 이벤트 등록한 요소!
})
element.addEventListner(’wheel’, event ⇒ {
event.preventDefault()
console.log(’Wheel!’) ← wheel을 사용할 때마 출력은 되지만 실제로 wheel을 이용한 화면 스크롤 동작은 이뤄지지 않음! 즉, 요소가 가진 기본 동작을 방지.
})
이벤트 버블링, 캡쳐링
이벤트 버블
특정 이벤트가 적용된 태그를 선택했을 때, 해당 태그를 자식으로 갖는 모든 부모요소의 이벤트 또한 실행되는 것.
이벤트 버블 방지
부모가 자식 요소의 이벤트에 영향을 받지 않도록 하기 위한 특정 위치의 자식요소에 event.stopPropagation()을 추가한다. 해당 메소드가 추가된 태그 부터 event가 전파되는 것을 막는다. (이벤트 캡쳐링에도 적용됨)
addEventListner의 3번째 인수, 이벤트 캡쳐링
이벤트 버블링 현상에서, 자식 요소의 이벤트부터 최상위 부모까지의 이벤트가 순서대로 동작하는데, capture:true를 통해 어떤 요소보다도 더 먼저 해당 요소의 이벤트가 먼저 동작하도록 하는 방법!
주의할 점은 이 속성을 사용한 경우, 단순 removeEventListner로는 제거되지 않고, capture:false도 같이 적용해줘야 제거가 가능하다.
이벤트 옵션
- 한번만 실행!