js:Event.currentTarget与Event.target的区别

e.target is what triggers the event dispatcher to trigger and e.currentTarget is what you assigned your listener to.javascript

举个例子:css

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
    #container {
        height: 200px;
        width: 100px;
        background-color: #333;
    }

    </style>
</head>
<body>

<div id="container">
    
    <button id="btn">button</button>

</div>

<script type="text/javascript">
function handle(e){
    console.log('e.currentTarget: ' + e.currentTarget.tagName);
    console.log('e.target: ' + e.target.tagName);
    console.log('this:' + this.tagName);
}

var div = document.getElementById('container');
div.addEventListener('click', handle, false);

</script>

</body>
</html>

事件是绑定到div上的,点击div中的按钮时:html

输入图片说明

点击div中按钮以外的区域时:java

输入图片说明

因为是在div上绑定的点击事件,因此handle中的this和e.currentTarget都指向div,而target指向鼠标点击的那个元素。this

相关文章
相关标签/搜索