특정 노드에 일일이 이벤트 리스너를 추가하는 대신, 이벤트 리스너를 특정 노드들을 포함하는 상위 노드에 연결하여 이벤트를 전파하는 것을 이벤트 위임이라고 한다.
<ul class"parentNode">
<li class="childNode">
<a href="/child-node-1">
하위 노드 1
</a>
</li>
<li class="childNode">
<a href="/child-node-2">
하위 노드 2
</a>
</li>
<li class="childNode">
<a href="/child-node-3">
하위 노드 3
</a>
</li>
</ul>
const parentNode = document.querySelector('.parentNode");
// 상위 노드에 이벤트리스너 연결
parentNode.addEventListener('click', (e) => {
/*
대상 노드를 구분하는 방법은 여러가지
ex:) 특정 클래스를 포함하는지 => classList.contains
*/
const nodeName = e.target.nodeName.toLowerCase();
// 해당 대상 노드에 처리 코드 작성
switch(nodeName) {
case 'li':
console.log('<li>');
break;
case 'a':
e.preventDefault();
console.log('<a>');
break;
default:
console.log(`<${nodeName}>`)
}
})