我不明白有什么区别,它们看起来是一样的,但我想它们不是。

任何关于何时使用其中一个或另一个的例子都将是非常感谢的。


当前回答

E.target是元素,你可以点击它 currenttarget是添加了事件监听器的元素。

如果你点击按钮的子元素,最好使用currentTarget来检测按钮属性,在CH中使用e.target有时会有问题。

其他回答

那件事值得注意。Target可能很有用,例如,用于使用单个侦听器来触发不同的操作。假设你有一个典型的“菜单”精灵,里面有10个按钮,所以不要这样做:

menu.button1.addEventListener(MouseEvent.CLICK, doAction1);
menu.button2.addEventListener(MouseEvent.CLICK, doAction2);
etc...

你可以简单地做:

menu.addEventListener(MouseEvent.CLICK, doAction);

并根据事件在doAction(event)中触发不同的操作。目标(使用它的name属性,等等…)

举个例子:

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是元素,你可以点击它 currenttarget是添加了事件监听器的元素。

如果你点击按钮的子元素,最好使用currentTarget来检测按钮属性,在CH中使用e.target有时会有问题。

e.currentTarget总是事件实际绑定的元素。e.target是事件产生的元素,所以e.target可以是e.currentTarget的子元素,或者e.target可以是=== e.currentTarget,这取决于你的标记是如何构造的。