2.事件委托.html 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <ul>
  10. <li>1</li>
  11. <li>2</li>
  12. <li>3</li>
  13. <li>4</li>
  14. </ul>
  15. <script>
  16. /**
  17. * 事件委托:
  18. * 利用冒泡的特性
  19. * 把原来要绑定在子元素上的事件 绑定到他的父元素上
  20. * 触发子元素的时候 事件会冒泡到对应的父元素上
  21. * 父元素通过判断事件源来执行对应的逻辑
  22. */
  23. const ul = document.querySelector("ul");
  24. const lis = document.querySelectorAll("li");
  25. ul.onclick = function (ev) {
  26. if (ev.target) {
  27. console.log(ev.target.innerHTML);
  28. }
  29. }
  30. // for (let i = 0; i < lis.length; i++) {
  31. // // console.log(lis[i]);
  32. // lis[i].onclick = function () {
  33. // console.log(lis[i].innerHTML);
  34. // }
  35. // }
  36. </script>
  37. </body>
  38. </html>