
form > div > p 형태로 중첩된 구조이고, 요소 각각에 핸들러가 할당되어 있을때
<style>
body * {
margin: 10px;
border: 1px solid blue;
}
</style>
<form onclick="alert('form')">FORM
<div onclick="alert('div')">DIV
<p onclick="alert('p')">P</p>
</div>
</form>
<p>에 할당된 onclick 핸들러가 동작<div>에 할당된 핸들러가 동작<form>에 할당된 핸들러가 동작document 객체를 만날 때까지, 각 요소에 할당된 onclick 핸들러가 동작핸들러에게 이벤트를 완전히 처리하고 난 후 버블링 중단하도록 하려면 : event.stopPropagation()
<body onclick="alert(`버블링은 여기까지 도달하지 못합니다.`)">
<button onclick="event.stopPropagation()">클릭해 주세요.</button>
</body>
<button> 을 클릭해서 body.onClick 은 동작하지 않음
e.stopPropagation() : 이벤트 전파 중지e.stopImmediatePropagation() : 이벤트 전파 중지 + 형제 이벤트 실행 중지e.preventDefault() : 이벤트 전파 중지 + 형제 이벤트 실행 중지 + 이벤트 기본 동작 중지addEventListener에 세번째 프로퍼티에 true 또는 { capture:true }를 전달⇒ 자식 요소 각각에 이벤트 핸들러를 하나씩 등록할 필요 없이 부모 요소에서 한 번에 자식 요소들에 발생한 이벤트를 관리할 수도 있다
이렇게 이벤트를 다루는 방식을 자식 요소의 이벤트를 부모 요소에 위임한다고 해서 이벤트 위임이라고 부른다