事件委托(事件代理)
原理:不要给每个子节点单独设置事件监听,而是把事件监听设置在父节点上,利用事件冒泡的原理影响至每个子节点
例如:
我们用for循环的方式为每个li添加事件监听太麻烦,效率低
因此,我们可以为父节点注册事件,然后在函数中通过e.target可以找到当前点击的li,利用事件冒泡到父节点上,触发事件
<ul>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
<li>知否知否,点我应有弹框在手!</li>
</ul>
<script>
// 事件委托的核心原理:给父节点添加侦听器, 利用事件冒泡影响每一个子节点
var ul = document.querySelector('ul');
ul.addEventListener('click', function(e) {
// alert('知否知否,点我应有弹框在手!');
// e.target 这个可以得到我们点击的对象
e.target.style.backgroundColor = 'pink';
})
</script>