Event.target,Event.toElement和Event.srcElement有什么区别?

时间:2015-08-06 20:42:12

标签: javascript javascript-events

我有以下代码:

document.oncontextmenu = function(evt) {
    evt = evt || window.event;
    console.log(evt.target, evt.toElement, evt.srcElement);
};

点击<div class="foo"></div>上的鼠标右键,返回:

  

div.foo,div.foo,div.foo

点击<input>上的鼠标右键,返回:

  

输入,输入,输入

所有人似乎都带来了同样的结果。是否存在其中一种用途与其他用途不同的情况?

1 个答案:

答案 0 :(得分:57)

event target是调度事件的元素:

  

使用event定位DOM event flow的对象。事件目标是Event.target的值   属性。

srcElement是获取target的IE非标准方法。

current event target是具有当前调用的事件侦听器的元素:

  

在事件流中,当前事件目标是关联的对象   使用当前正在分派的event handler。这个   object可以是event target本身或其祖先之一。   当{4}}传播时,当前事件目标会发生变化   通过事件流的各种event来反对对象。   当前事件目标是的值   phases属性。

在事件侦听器中使用this是获取当前事件目标的常用(和标准)方法。

某些类型的活动有Event.currentTarget

  

用于标识与UI事件相关的辅助relatedTarget,   取决于事件的类型。

fromElementtoElement是获取relatedTarget的IE非标准方式。