什么是事件委托
所谓的事件委托,就是将自己要做的事情,委托给自己的祖先元素,之后利用冒泡机制,实现自身的事件。
总结来说,事件委托就是子元素触发事件,监听函数放在父元素或祖辈以上元素。基于这种机制,我们就可以在所有相关的祖辈元素上面增加监听函数
<div id="div1">
<button>123</button>
</div>
div1.addEventListener("click",(e)=>{
const t = e.target
if(t.tagName.toLowCase() === 'button'){
console.log("button被点击了")
}
})
上述代码虽说button上没有绑定事件,但是点击后仍然可以输出button被点击了,这就是事件委托
事件委托的2大优点
-
大量减少内存占用,减少事件注册 //假如100个子元素触发同一个监听函数,可以将此放在父元素上面。
-
新增元素实现动态绑定事件//用createElement创建的元素,可以将监听函数放到父元素上面。