반응형
문제
여태 preventDefault()
나 stopPropagation()
을 사용할 일은 많았다. 그런데 오늘 모달 팝업 개발 중, 공통에서 처리해둔 닫기버튼 이벤트 전에 confirm을 띄워야 하는 일이 생겼다.
하나의 엘리먼트에 다른 클릭 이벤트 리스너를 추가해서 이벤트 전파를 막아야 하는 것이다. 결론저으로 앞에 언급한 두 가지 모두 아니고, stopImmediatePropagation()
을 사용해야 한다.
정리
preventDefault
- 기본 동작을 막는다. (예컨대 submit 버튼이라면 form submit을 막음)stopPropagation
- 이벤트 버블링을 방지한다.stopImmediatePropagation
- 같은 element 동일한 이벤트(예:클릭)에 여러 리스너가 등록되어 있다면 그 실행을 막는다. 실행 순서는 나중에 등록한 리스너부터 실행되는 것 같다.
반응형
'프로그래밍 > Javascript' 카테고리의 다른 글
HTML5 / input type="number" maxlength 키보드 입력 제한하기 (0) | 2020.07.23 |
---|---|
부트스트랩 기간 달력 시작/종료일 제한하기 (Bootstrap datepicker, daterange) (2) | 2020.07.21 |
Spring / jQuery ajax 사용시 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined 오류 (0) | 2020.06.30 |
아이디, 패스워드 패턴 검사는 정규식으로 하자 (0) | 2020.06.05 |
IE에서 [Syntax Error: ':'가 필요합니다] 발생하면 ES6를 사용한 것 (0) | 2020.04.01 |