이벤트 취소를 위한 방법으로는
대표적으로 Event.preventDefault(), Event.stopPropagation(), Event.stopImmediatePropagation()이 있습니다.
사실 Event.preventDefault() 외에는 사용빈도가 높지 않기 때문에
세 개의 방법을 알고 있긴 했어도, 모호하게 알고만 있는 정도였는데
프로젝트 수행 중에 이미 해당 영역에 걸린 이벤트를 공통 스크립트를 통해 제어할 방법이 필요하여
검색 중에 이 내용에 대해 확실하게 정리해두는 게 좋을 거란 생각이 들었습니다.
1. Event.preventDefault();
이벤트를 취소할 수 있는 경우, 이벤트의 전파를 막지 않고 해당 이벤트를 취소합니다.
(event.cancelable을 사용하여 이벤트 취소 가능 여부를 확인할 수 있습니다.)
즉, 해당 이벤트만 취소하며, 상위 요소의 이벤트가 호출되는 것은 막지 않습니다.
2. Event.stopPropagation();
이벤트 캡쳐링과 버블링에 있어 해당 이벤트 이후의 전파를 막습니다.
즉, 해당 이벤트의 상위 요소에 걸린 이벤트가 호출되지 않습니다.
3. Event.stopImmediatePropagation();
해당 이벤트와 같은 레벨에 걸린 이벤트가 다른 리스너에서 불려지는 것을 막습니다.
즉, 현재 이벤트와 같은 레벨에 걸린 이벤트를 취소하며, 상위 요소의 이벤트가 호출되는 것도 막습니다.
번외. return false;
번외로 JQuery 라이브러리를 사용할 경우 return false; 구문을 통해
해당 이벤트를 취소하며, 상위 요소에 걸린 이벤트를 호출하지도 않습니다.
즉, JQuery 라이브러리를 사용할 경우 return false는
Event.preventDefault()와 Event.stopPropagation()를 함께 사용한 것과 같습니다.
'JavaScript' 카테고리의 다른 글
[Javascript] 자바스크립트의 역사와 발전 과정에 대해! (0) | 2021.12.22 |
---|---|
[JavaScript] 자바스크립트로 하는 전화번호 / 휴대폰 번호 유효성 검사 (정규식) (0) | 2021.11.05 |
[JavaScript] 키코드 정리 (JavaScript keyCode) (0) | 2021.07.17 |
[JavaScript] Date 객체 사용 시 주의해야 할 점 (크로스 브라우징 이슈) (1) | 2021.07.06 |
[JavaScript] 논리 연산자(&&, ||)를 활용한 간결하고 효율적인 스크립트 작성 TIP (0) | 2021.07.02 |