dom 事件委托

2021-08-29  本文已影响0人  菜鸡前端

1. 作用

事件委托指的是:当事件触发时,把要做的事委托给父元素来处理。在学它的用法之前,先了解一下它的作用:

2. 演示

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>事件代理</title>
</head>

<body>
  <ul>
    <li>1</li>
    <li>2</li>
    <div>3</div>
  </ul>
</body>
<script>
  function callback(el) {
    alert(el.innerHTML);
  }

  // 1. 非优化
  // var nodeList = document.querySelectorAll("li")
  // nodeList.forEach(el => {
  //   el.addEventListener('click', () => {
  //     callback(el)
  //   })
  // })

  // 2. 使用事件代理
  // 通过 event.target 可以获取当目标阶段的元素,也就是我们所需的子元素
  // event.currentTarget 指向绑定事件的元素
  document.querySelector("ul").addEventListener("click", function (e) {
    if ("LI" === e.target.tagName) {
      callback(e.target)
    }
  })
</script>

</html>
上一篇 下一篇

猜你喜欢

热点阅读