事件委托(Event delegation)是一种在父元素上处理子元素事件的技术。它通过监听父元素的事件,然后判断触发事件的子元素,进行相应的处理。这样做的好处是可以减少事件监听器的数量,提高性能。
以下是使用JavaScript实现事件委托的步骤:
event.target
)。下面是一个简单的示例:
HTML结构:
<ul id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
JavaScript代码:
// 获取父元素
const list = document.getElementById('list');
// 为父元素添加事件监听器
list.addEventListener('click', (event) => {
// 获取触发事件的元素
const target = event.target;
// 判断触发事件的元素是否为li子元素
if (target.tagName === 'LI') {
// 执行相应的处理逻辑
console.log(`Clicked on ${target.textContent}`);
}
});
在这个示例中,我们为ul
元素添加了一个点击事件监听器。当点击事件发生时,我们检查触发事件的元素是否为li
子元素,如果是,则输出相应的文本。这样,我们只需要一个事件监听器就可以处理所有的li
子元素的点击事件。