11일차 - Event Bubbling(Delegation)

류연찬·2022년 11월 14일
0

Codecamp FE07

목록 보기
11/39

프로젝트를 진행하면서 게시판 목록에서 목록을 클릭하여 상세보기 페이지로 넘어가는 과정에서 작동이 잘 안되는 경우가 있습니다.

그 이유는 Event Bubbling 때문입니다.

Event Bubbling 이란 특정 화면 요소에서 이벤트가 발생하였을때, 해당 이벤트가 더 상위 화면 요소들로 전달되는 특성을 의미합니다.

예를 들어,

<form onclick={alert(form)}>
	<div onclick={alert(div)}>
		<p onclick={alert(p)}>P</p>
	</div>
</form>

위와 같은 구조에서 <p></p> 를 클릭하면 p → div → form 순서로 3개의 경고창을 나타내게 됩니다.

프로젝트에서는 제목이나 내용에 onClick 함수가 있는 것이 아닌 전체를 감싸주는 박스에 onClick 함수가 있을 경우 발생하게 됩니다. 이러한 경우 event.target.id 가 아닌 event.currentTarget.id 를 사용하여 버블링을 막아줄 수 있습니다.

🔔 Event Capturing
캡쳐링은 버블링과 반대로 상위에서 하위로 이벤트가 전파되는 단계입니다.
캡쳐링에 관한 코드를 발견한는 일은 거의 없지만, 발생하게 된다면 이 개념을 이해하고 있어야 이벤트 핸들링을 해줄 수 있기 때문에 캡쳐링과 버블링 두 개념 모두 알고 있어야 합니다.

0개의 댓글