[javascript] 이벤트 전파 방지하기
웹 개발을 할 때, 때로는 이벤트가 상위 요소로 전파되지 않도록 해야 할 때가 있습니다. 예를 들어, 하위 요소에서 발생한 이벤트가 상위 요소로 계속 전파되지 않도록 막아야 하는 경우가 있을 수 있습니다.
이벤트 전파란 무엇인가요?
우선 이벤트 전파에 대해 간단히 알아보겠습니다. HTML 요소는 중첩 관계를 가질 수 있으며, 하위 요소의 이벤트가 상위 요소로 전파될 수 있습니다.
이벤트 전파를 막는 방법
stopPropagation
메서드를 사용하기
자바스크립트에서는 stopPropagation
메서드를 사용하여 이벤트 전파를 막을 수 있습니다.
element.addEventListener('click', function(event) {
event.stopPropagation();
});
위의 예시에서 stopPropagation
메서드는 click 이벤트가 발생했을 때, 상위 요소로의 전파를 막습니다.
capture
사용하기
이벤트 리스너를 추가할 때 세 번째 매개변수로 capture
값을 true
로 설정하여 해당 이벤트가 캡처 단계에서 처리되도록 할 수 있습니다. 이를 통해 상위 요소로의 전파를 막을 수 있습니다.
element.addEventListener('click', function(event) {
// 이벤트 처리
}, true);
결론
이벤트 전파를 막는 것은 웹 애플리케이션의 동작을 조절하고 예상치 못한 동작을 방지하는 데 도움이 됩니다. stopPropagation
메서드와 capture
를 사용하여 적절하게 이벤트 전파를 제어할 수 있습니다.
MDN Web Docs - Event.stopPropagation()