事件委托

57 阅读1分钟

事件对象

let main = document.querySelector(".main")
main.onclick = function (e) {
    console.log(e)
}

事件对象的属性

let main = document.querySelector(".main")
main.onclick = function (e) {
    // target 返回对应的dom对象
    console.log(e.target)
}

事件委托

优点

  • 性能好
  • 后添加的内容也有效
// 实现小功能 点击li让当前li的背景变成红色
<ul>
    <li>content</li>
    <li>content</li>
    <li>content</li>
</ul>
// for循环实现
let lis = document.querySelectorAll("li")
let liLen = lis.length;
for (let i = 0; i < liLen; i++) {
    lis[i].onclick = function (e) {
        this.style.backgroundColor = 'red'
    }
}

// 通过事件委托实现
let ul = document.querySelector("ul")
ul.addEventListener("click", (e) => {
   e.target.style.backgroundColor = 'red'
}, false)

// 使用事件委托只需要给父级添加一个点击事件,不需要给每一个li加入点击事件,性能能得到提升