이벤트 버블링은 웹 개발에서 DOM 이벤트가 발생했을 때, 그 이벤트가 부모 요소로 전파되는 방식을 설명하는 개념이다. 기본적으로 자식 요소에서 발생한 이벤트는 가장 먼저 해당 요소에서 처리되고, 이후에 그 이벤트가 부모 요소로 전파되어 부모 요소에서도 처리될 수 있다. 이 과정은 DOM 트리의 상단으로 올라가면서 계속 이어진다.
예시
<div id="parent">
<button id="child">Click me</button>
</div>
이때, 버튼을 클릭하면 다음과 같은 순서로 이벤트가 처리된다.
이벤트 버블링은 다음과 같은 상황에서 유용하게 사용될 수 있다.
예시
HTML 구조
<div id="parent">
<button class="child">Button 1</button>
<button class="child">Button 2</button>
<button class="child">Button 3</button>
</div>
Javascript 코드
// 부모 요소를 선택
const parent = document.getElementById('parent');
// 부모 요소에 클릭 이벤트 핸들러 추가
parent.addEventListener('click', function(event) {
// 클릭된 요소가 자식 버튼인지 확인
if (event.target.classList.contains('child')) {
console.log('Child button clicked:', event.target.textContent);
}
});
예시 설명
이벤트 전파를 중단하려면 event.stopPropagation() 메서드를 사용하여 부모 요소로의 전파를 막을 수 있다.