天天看点

深入理解target与currentTarget一、target与currentTarget两者既有区别,也有联系

一、target与currentTarget两者既有区别,也有联系

举例:

1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>Example</title>
 5 </head>
 6 <body>
 7     <div id="A">
 8         <div id="B">
 9         </div>
10     </div>
       <script>
            var a = document.getElementById('A'),
                b = document.getElementById('B');    
            function handler (e) {
                console.log(e.target);
                console.log(e.currentTarget);
             }
             // 当addEventListener的第三个参数为true的时候,代表是在捕获阶段绑定,当第三个参数为false或者为空的时候,代表在冒泡阶段绑定。
             a.addEventListener('click', handler, false);
            // 当点击A时:输出:输出 1 <div id="A">...<div>  2 <div id="A">...<div>
            // 当点击B时:输出:输出 1 <div id="B">...<div>  2 <div id="A">...<div>
       </script>
11 </body>
12 </html>
           

currentTarget指向添加监听事件的对象,而target指向触发事件监听的对象。(可能这样更好理解:currentTarget始终是监听事件者,而target是事件的真正发出者)

继续阅读