我不明白有什么区别,它们看起来是一样的,但我想它们不是。
任何关于何时使用其中一个或另一个的例子都将是非常感谢的。
我不明白有什么区别,它们看起来是一样的,但我想它们不是。
任何关于何时使用其中一个或另一个的例子都将是非常感谢的。
当前回答
e.currentTarget总是事件实际绑定的元素。e.target是事件产生的元素,所以e.target可以是e.currentTarget的子元素,或者e.target可以是=== e.currentTarget,这取决于你的标记是如何构造的。
其他回答
e.target是触发事件分派器的触发器,e.currentTarget是你分配给监听器的对象。
E.target是元素,你可以点击它 currenttarget是添加了事件监听器的元素。
如果你点击按钮的子元素,最好使用currentTarget来检测按钮属性,在CH中使用e.target有时会有问题。
举个例子:
var body = document.body,
btn = document.getElementById( 'id' );
body.addEventListener( 'click', function( event ) {
console.log( event.currentTarget === body );
console.log( event.target === btn );
}, false );
当你点击'btn'时,会出现'true'和'true' !
e.currentTarget总是事件实际绑定的元素。e.target是事件产生的元素,所以e.target可以是e.currentTarget的子元素,或者e.target可以是=== e.currentTarget,这取决于你的标记是如何构造的。
我喜欢直观的答案。
当您单击#btn时,将调用两个事件处理程序,它们将输出您在图片中看到的内容。
演示在这里:https://jsfiddle.net/ujhe1key/