반응형
이벤트 리스너를 지정하는 요소가 많으면 많을수록 페이지의 실행 속도는 느려집니다. 그래서 효율적으로 이벤트를 관리하기 위해서 이벤트의 흐름을 이용합니다. 이벤트는 이벤트가 발생한 엘리먼트를 포함하고 있는 부모 요소에도 영향을 미치기 때문에 자식 요소를 포함할 수 있는 요소에 이벤트 핸들러를 지정하고 이벤트의 흐름을 이용해 다룰 수 있습니다.
즉, 이벤트 리스너가 실행할 작업을 요소의 부모 요소에게 위임(Delegation)할 수 있다는 것입니다.
이벤트 위임의 장점들
- 동적으로 추가되는 요소들에도 동작한다.
- DOM트리에 새로운 요소를 추가하더라도 이벤트에 대한 처리는 부모 요소에게 위임되었기 때문에 새로운 요소에 이벤트 핸들러를 다시 지정할 필요가 없다.
- 코드의 간결
- 이 기법을 이용하면 함수를 많이 작성할 필요가 없으며 DOM과 코드간의 연결이 간소해져 결과적으로 유지보수에 도움이 된다.
<ul id="parent-list">
<li id="item1">Item 1</li>
<li id="item2">Item 2</li>
<li id="item3">Item 3</li>
</ul>
//상위 노드에 이벤트 설정
document.getElementById("parent-list").addEventListener("click", function (e) {
if (e.target && e.target.nodeName == "LI") {
console.log(`List item ${e.target.id} was clicked!`);
}
});
반응형
'JavaScript' 카테고리의 다른 글
꼭! 알아야하는 JavaScript 최신문법 (ES6, ES11) 사용법 정리 (2) (0) | 2020.12.22 |
---|---|
꼭! 알아야하는 JavaScript 최신문법 (ES6, ES11) 사용법 정리 (1) (0) | 2020.12.22 |
JavaScript 30 Drum Kit 정리 (0) | 2020.12.22 |
CSS Variables (0) | 2020.12.22 |
CSS + JS Clock 정리 (0) | 2020.12.22 |