• 【前端】event.target 和 event.currentTarget 的区别


    event.target 和 event.currentTarget 的区别

    举例说明:

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style>
            div {
                margin: 1rem;
                padding: 1rem;
            }
    
            #a {background-color: #f00;}
            #b {background-color: #0f0;}
            #c {background-color: #00f;}
            #d {background-color: #aaa;}
        </style>
    </head>
    <body>
        <div id="a">a
            <div id="b">b
              <div id="c">c
                <div id="d">d</div>
              </div>
            </div>
        </div>
    
        <script>
            function logTarget(e) {
                console.log('target:' + e.target.id + ' & currentTarget:' + e.currentTarget.id);
            }
    
            document.getElementById('a').addEventListener('click', logTarget, false);
            document.getElementById('b').addEventListener('click', logTarget, false);
            document.getElementById('c').addEventListener('click', logTarget, false);
            document.getElementById('d').addEventListener('click', logTarget, false);
        </script>
    </body>
    </html>
    

    当点击d的时候,输出:

    target:d & currentTarget:d
    target:d & currentTarget:c
    target:d & currentTarget:b
    target:d & currentTarget:a
    

    当点击b的时候,输出:

    target:b & currentTarget:b
    target:b & currentTarget:a
    

    结论

    • target始终鼠标点击的element,固定不变;
    • currentTarget在事件捕获或者事件冒泡过程中,指向当前的element,会不断变化。
  • 相关阅读:
    编译原理是什么?有什么用?
    词频统计
    python基础综合练习
    熟悉常用的Linux操作
    大数据概述
    c语言程序的文法分析
    词法分析实验报告
    未完成的词法分析
    一名初学者对编译原理的看法
    使用Bootstrap.css 中IE下页面加载过慢问题
  • 原文地址:https://www.cnblogs.com/forzhaokang/p/5221494.html
Copyright © 2020-2023  润新知