• js dom 事件委托的 target 和currentTarget


    参考博客:https://blog.csdn.net/weixin_42458965/article/details/105687926

    https://www.cnblogs.com/guojiabing/p/12213332.html

    • target是事件触发的真实元素。(点击!)

    • currentTarget是事件绑定的元素。(绑定!)

    • 事件处理函数中的this指向是中为currentTarget

    event对象中 会有两个对象。一个是target,一个currentTarget。

     currentTarget是 box.onlick= function(e){}。绑定的事件。也就是 事件监听器的对象。

     target。实际上点击的对象。

     1 绑定在水果上, 绑定的对象是水果。

    如果点击水果。那么点击的对象是水果 == 绑定的水果。

    如果点击的是 苹果,那么对点击的对象是苹果 !== 绑定的水果。

    <body>
        <ul id="box">
            水果
            <Li id="apple">苹果</Li>
            <li>香蕉</li>
            <li>桃子</li>
        </ul>
     </body>
     <script type="text/javascript">
        var box = document.getElementById('box');
        var apple = document.getElementById('apple');
      
       //绑定在父元素box上(如果点击apple这个li时)
        box.onclick = function (e){
            console.log(e.target);           // <li id="apple">苹果</li>
            console.log(e.currentTarget);       //<ul id="box">...</ul>
            console.log(this);                  //<ul id="box">...</ul>
            console.log(e.currentTarget===this);      //true
            console.log(e.target === e.currentTarget);        //false
            console.log(e.target === this);           //false
        }
     
    
     </script>

    2 如果绑定的是苹果,那么绑定的就是苹果。 currentTarget==苹果。

    无论怎么点击都是苹果。

    <body>
        <ul id="box">
            水果
            <Li id="apple">苹果</Li>
            <li>香蕉</li>
            <li>桃子</li>
        </ul>
     </body>
     <script type="text/javascript">
        var box = document.getElementById('box');
        var apple = document.getElementById('apple');
      
       //绑定在父元素box上(如果点击apple这个li时)
        box.onclick = function (e){
            console.log(e.target);           // <li id="apple">苹果</li>
            console.log(e.currentTarget);       //<ul id="box">...</ul>
            console.log(this);                  //<ul id="box">...</ul>
            console.log(e.currentTarget===this);      //true
            console.log(e.target === e.currentTarget);        //false
            console.log(e.target === this);           //false
        }
     
        //直接绑定在目标元素apple上
        apple.onclick = function (e){  
            console.log(e.target);          //<li id="apple">苹果</li>
            console.log(e.currentTarget);    //<li id="apple">苹果</li>
            console.log(this);               //<li id="apple">苹果</li>
            console.log(e.target === e.currentTarget);      //true
            console.log(e.target === this);           //true
        } 
     </script>
  • 相关阅读:
    重构该何时登场
    重构
    中国剩余定理
    连分数的应用
    连分数的性质
    有限连分数与欧几里德除法的联系
    连分数
    费马大定理
    P4178 Tree 点分治
    LOJ 6029. 「雅礼集训 2017 Day1」市场
  • 原文地址:https://www.cnblogs.com/hacker-caomei/p/14430470.html
Copyright © 2020-2023  润新知