📅  最后修改于: 2023-12-03 15:31:47.657000             🧑  作者: Mango
Javascript中的委托(Delegation),也被称为委托事件(Event delegation),是一种常用的编程技术,可用于提高代码的效率和可维护性。委托机制允许我们将事件处理程序添加到它们的容器元素中,而不是每个单独的子元素上。当发生事件时,事件将“委托”到容器元素,然后通过冒泡机制找到实际发生事件的目标元素。这个机制可以减少事件处理程序的数量,避免重复代码,同时也能让代码更具可读性。
委托机制依赖于事件的冒泡机制。在DOM中,当一个元素上的事件被触发时,它会向上冒泡,直到到达文档根节点。利用这个机制,我们可以把事件处理程序添加到容器元素上,然后在事件冒泡到目标元素时执行相应的处理程序。
// HTML结构
<ul id="list">
<li>apple</li>
<li>banana</li>
<li>cherry</li>
</ul>
// Javascript代码
const list = document.querySelector('#list');
list.addEventListener('click', function(event) {
if (event.target.nodeName === 'LI') {
console.log(event.target.innerText);
}
});
在上面的代码中,我们为列表容器元素(ul)添加了一个“click”事件处理程序,当点击列表项(li)时,会打印列表项的文本内容。由于点击事件会冒泡到容器元素,我们可以通过判断事件目标元素(event.target)的节点类型来确定是否点击了列表项。