zoukankan      html  css  js  c++  java
  • js委托事件-addEventListeners(冒泡方向)

    JQuery中live()、delegate()、on()事件都能给新增元素绑定事件,原理就是用了事件委托。

    实例:

    给id为div的元素绑定一个click委托,如果冒泡上来的元素是P元素就会执行alert("xxx");

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>  
    4.     <meta charset="UTF-8">  
    5.     <title>Title</title>  
    6. </head>  
    7. <body>  
    8. <div id="div">  
    9.    <p>11111</p>  
    10.     <p>2222</p>  
    11. </div>  
    12. <button id="btn">xxxx</button>  
    13. <script>  
    14.     document.getElementById("div").addEventListener("click",function(e){  
    15.         if(e.target.nodeName=="P"){  
    16.             alert("xxx")  
    17.         }  
    18.     })  
    19.     document.getElementById("xx").onclick=function(){  
    20.         var p = document.createElement("p");  
    21.         p.innerHTML="333";  
    22.         document.getElementById("btn").appendChild(p);  
    23.     }  
    24. </script>  
    25. </body>  
    26. </html>  


    冒泡方式分为2种,一种是由子元素向上冒泡,一种是由父元素向下冒泡

    在使用addEventListeners的时候有第三个参数true和flase;默认是flase,由子元素向上冒泡

    当我们设置为true的时候就会由父元素向下冒泡

    实例:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
      1. <!DOCTYPE html>  
      2. <html lang="en">  
      3. <head>  
      4.     <meta charset="UTF-8">  
      5.     <title>Title</title>  
      6. </head>  
      7. <body>  
      8. <div id="id1" style="200px; height:200px; position:absolute; top:100px; left:100px; background-color:blue; z-index:4">  
      9.     <div id="id2" style="100px; height:100px; top:20px; left:70px; background-color:green; "></div>  
      10. </div>  
      11. <script>  
      12.     document.getElementById("id1").addEventListener('click',function(){  
      13.         console.log("id1");  
      14.     },true)  
      15.     document.getElementById("id2").addEventListener('click',function(){  
      16.         console.log("id2");  
      17.     },true)  
      18. </script>  
      19. </body>  
      20. </html
  • 相关阅读:
    jenkins+tomcat+python+pytest的web自动化化部署
    windows的jenkins+tomcat工作目录配置(这个要安装前就提前确定好,这种方法会导致整个jenkins重置)
    pytest xunit2 in pytest6.0
    Jenkins基本配置一
    React生命周期函数的使用场景
    React中的生命周期函数(老版本V16.0之前)
    React中ref的使用
    React中setState注意事项
    React之虚拟DOM中的Diff算法
    React之深入了解虚拟DOM
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6477523.html
Copyright © 2011-2022 走看看