博客列表 >事件添加方式,监听器和事件代理的实例演示

事件添加方式,监听器和事件代理的实例演示

N.
N.原创
2020年11月07日 20:17:03802浏览
事件的添加方式
  • 通过属性来添加事件,事件属性: on + 事件名称, onclick
  • 通过脚本的方式添加事件,而不需要添加事件属性,
  1. ev.target: 表示当前按钮,其实就是事件的触发者,
  2. .addEventListener(事件名称, 回调方法, 传递机制/捕获/冒泡),
  3. false: 冒泡阶段触发这个事件, true: 捕获阶段。
  4. %s是占位符,
    代码如下:

    1. <html lang="">
    2. <head>
    3. <meta charset="UTF-8" />
    4. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    5. <title>Document</title>
    6. </head>
    7. <body>
    8. <!-- 这是直接添加事件属性的方式 -->
    9. <button onclick="console.log(`哈哈,这是按钮一`)">按钮一</button>
    10. <!-- 这是通过事件属性添加函数的方式 -->
    11. <button onclick="hanshu(this)">按钮二</button>
    12. <!-- 通过给对象添加属性的方式 -->
    13. <button>按钮三</button>
    14. <button>按钮四</button>
    15. <script>
    16. // 这是按钮二的事件属性的函数
    17. function hanshu() {
    18. console.log("哈哈 这是按钮二");
    19. }
    20. const bt3 = document.querySelector("button:nth-of-type(3)");
    21. bt3.onclick = () => console.log("哈哈,这是按钮三");
    22. // 事件监听器
    23. const bt4 = document.querySelector("button:nth-of-type(4)");
    24. // .addEventListener(事件名称, 回调方法, 传递机制/捕获/冒泡)
    25. bt4.addEventListener("click", () => console.log("哈哈,这是按钮四的监听"), false);
    26. bt4.addEventListener("mouseover", () => console.log("移进来了"), false);
    27. bt4.addEventListener("mouseout", () => console.log("移出去了"), false);
    28. </script>
    29. <ul>
    30. <li>第一行</li>
    31. <li>第二行</li>
    32. <li>第三行</li>
    33. <li>第四行</li>
    34. <li>第五行</li>
    35. </ul>
    36. <script>
    37. // 根据冒泡原理,子元素的同名事件会向上冒泡到父级元素的同名事件上
    38. const ul = document.querySelector("ul");
    39. // ev.target: 事件的触发者, ev.currentTarget: 事件的绑定者
    40. ul.addEventListener("click", (aa) => console.log("触发 %s, 绑定 %s", aa.target, aa.currentTarget), false);
    41. </script>
    42. </body>
    43. </html>

截图在这

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议