• 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
  • 相关阅读:
    从一个表中查数据,插入另一个表
    sql 字段字符串内容替换
    安装VS2010后,如何设置老版本的项目文件不是默认用VS2010打开
    题解 [JOI 2019 Final] 独特的城市
    题解 [JOI 2019 Final] 硬币收藏
    题解 [CF720A] Closing ceremony
    [学习笔记] Miller-Rabin 质数测试
    题解 [CF332C] Students' Revenge
    题解 [CF525D] Arthur and Walls
    SpringMVC-拦截器
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6477523.html
Copyright © 2020-2023  润新知