프론트엔드/Javascript
[Javascript] 브라우저 기본동작과 이벤트 동작의 차이점 및 이벤트 버블링 방지 방법
순코딩
2024. 12. 24. 01:27
브라우저 기본 동작 vs 이벤트 동작
1️⃣ 브라우저 기본 동작
- HTML 태그와 브라우저가 제공하는 고유 기능.
- 예: <a> 클릭 시 페이지 이동, <form> 제출 시 새로고침, 스크롤 등.
- 자동 실행: JavaScript 코드 없이도 동작.
- 중단 방법: event.preventDefault().
2️⃣ 이벤트 동작
- JavaScript로 addEventListener 또는 React의 onClick 등으로 등록한 사용자 정의 동작.
- 예: 클릭 시 알림 표시, 키보드 입력 감지.
- 수동 실행: 프로그래머가 리스너를 추가해야 동작.
이벤트 버블링 정의
**이벤트 버블링(Event Bubbling)**은 DOM 요소에서 발생한 이벤트가 타깃 요소에서 시작해 부모 요소로 전파되는 동작입니다.
- 이벤트는 타깃 요소 → 부모 → 조부모 순으로 상위 요소로 전파됩니다.
- 기본 동작: 자식 요소에서 발생한 이벤트가 부모 요소에도 영향을 미칠 수 있음.
예:
<div class="parent">
<button class="child">Click Me</button>
</div>
document.querySelector('.parent').addEventListener('click', () => console.log('Parent clicked'));
document.querySelector('.child').addEventListener('click', () => console.log('Child clicked'));
이벤트 버블링 방지 방법
- event.stopPropagation()
- 이벤트가 상위 요소로 전파되지 않도록 차단.
- 버블링 단계에서만 유효.
- event.stopImmediatePropagation()
- 같은 요소에 등록된 다른 이벤트 핸들러도 실행되지 않도록 차단.
- CSS로 클릭 차단
- pointer-events: none; 사용해 클릭 이벤트 자체를 비활성화.