一、概念
事件委托,用白话来讲就是将事件监听交给自己的祖先元素进行处理。
二、原理
事件委托的实现是根据事件冒泡实现的,利用事件冒泡的特性。对于父元素使用事件监听,当父盒子里面的某个元素被触发时,向上冒泡,触发父元素的事件。利用 target 后去触发冒泡事件的元素。
<ul id="father"><li>one</li><li>two</li><li>three</li><li>four</li></ul><script>let domUl = document.querySelector('#father')domUl.addEventListener('click', (e) => {if (e.target.nodeName.toLowerCase() == 'li') {console.log(e.target)}})</script>
通过 target 下的 nodeName 属性判断。是否是我们需要监听的元素。
三、优点
- 可以节省大量内存
- 可以监听动态元素
注意:事件委托需要依赖事件冒泡,如果不支持事件冒泡的元素没办法使用事件委托。
