事件代理(Event Delegation)是一种在开发中优化事件处理的技术,它利用事件冒泡的原理,将事件处理程序绑定在父元素上,通过判断事件的目标来执行相应的操作。这种方式可以减少事件处理程序的数量,提高性能,并且对于动态添加或删除的子元素更为灵活。
只需在父元素 ul 上添加一个事件处理程序,就能够捕获到子元素 li 的点击事件,而不必为每个 li 添加单独的事件处理程序。这样就实现了事件代理。
<ul id="parentList"><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul><script>document.getElementById('parentList').addEventListener('click', function(event) {if (event.target.tagName === 'LI') {// 在这里处理 LI 元素被点击的逻辑console.log('Item clicked:', event.target.textContent);}});</script>