DOM事件委托

85 阅读1分钟

什么是事件委托

所谓的事件委托,就是将自己要做的事情,委托给自己的祖先元素,之后利用冒泡机制,实现自身的事件。

总结来说,事件委托就是子元素触发事件,监听函数放在父元素或祖辈以上元素。基于这种机制,我们就可以在所有相关的祖辈元素上面增加监听函数

image.png

<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创建的元素,可以将监听函数放到父元素上面。