我不明白有什么区别,它们看起来是一样的,但我想它们不是。
任何关于何时使用其中一个或另一个的例子都将是非常感谢的。
我不明白有什么区别,它们看起来是一样的,但我想它们不是。
任何关于何时使用其中一个或另一个的例子都将是非常感谢的。
当前回答
. currenttarget总是返回事件监听器被添加到的组件。
另一方面,e.target可以是组件本身,也可以是接收事件的任何直接子代、孙子代、孙子代等等。换句话说,e.target返回位于Display List层次结构顶部的组件,该组件必须位于子层次结构或组件本身中。
一种用途是当你在Canvas中有几个图像,你想在组件中拖动图像。你可以在Canvas上添加一个监听器,在监听器中你可以编写以下代码来确保Canvas不会被拖拽。
function dragImageOnly(e:MouseEvent):void
{
if(e.target==e.currentTarget)
{
return;
}
else
{
Image(e.target).startDrag();
}
}
其他回答
E.target是元素,你可以点击它 currenttarget是添加了事件监听器的元素。
如果你点击按钮的子元素,最好使用currentTarget来检测按钮属性,在CH中使用e.target有时会有问题。
e.target是触发事件分派器的触发器,e.currentTarget是你分配给监听器的对象。
e.currentTarget总是事件实际绑定的元素。e.target是事件产生的元素,所以e.target可以是e.currentTarget的子元素,或者e.target可以是=== e.currentTarget,这取决于你的标记是如何构造的。
我喜欢直观的答案。
当您单击#btn时,将调用两个事件处理程序,它们将输出您在图片中看到的内容。
演示在这里:https://jsfiddle.net/ujhe1key/
target is the element that triggered the event (e.g., the user clicked on)
currenttarget is the element that the event listener is attached to.