事件委派理解

248 阅读1分钟

什么是事件委派? 事件委派也叫事件代理,“事件代理”即是把原本需要绑定在子元素的响应事件(click、keydown…)委托给父元素,让父元素担当事件监听的职务。原理是利用事件冒泡的机制把内层所需要响应的事件绑定到外层。

比如下方的代码,要实现一个功能,每一个li标签在点击时都会提示里面的内容,给每一个li元素都绑定点击事件,事件注册会增多,内存占用也会增大,消耗性能。

    <ul id="ul">
        <li>000</li>
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
        <li>555</li>
    </ul>

这时候事件委派的作用就体现出来了

let ul = document.querySelector('#ul')
ul.onclick=(event)=>{
    console.log(event.target.innerText)
}

这里用父级ul做事件委派,当li元素被点击时,由于冒泡原理,事件就会冒泡到父级元素ul上,因为ul上有点击事件,所以事件就会触发

image.png
可以看到代码运行没问题

而且事件委派还有一个优点,当新增子对象时无需再次对其绑定,因为对每一个子元素进行操作一些响应事件,事件都会冒泡到父级元素上,触发父元素上的事件