事件代理(Event delegation)是一种利用事件冒泡机制的技术,通过将事件绑定到其父元素而不是直接绑定到子元素上,以处理子元素触发的事件。
假设有一个列表,我们想要点击列表项时获取其内容:
HTML 结构:
- Item 1
- Item 2
- Item 3
JavaScript 代码:
const parentList = document.getElementById('parentList');
// 使用事件代理,将事件绑定到父元素上
parentList.addEventListener('click', function(event) {
if (event.target.tagName === 'LI') {
console.log(event.target.textContent);
}
});
在这个例子中,通过将事件监听器绑定到父元素 parentList
上,我们利用事件冒泡捕获到了子元素 <li>
的点击事件。通过判断 event.target
,我们可以得知点击的具体是哪个子元素,从而执行相应的操作。
事件代理使得针对多个子元素的相同操作变得更加简洁和高效。
Proudly powered by WordPress