Event.target,Event.toElement和Event.srcElement有什么区别?
我有以下代码:
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>
上单击鼠标右键,返回:
input,input,input
所有似乎都带来了相同的结果。 有没有什么情况比其他人有其他用途?
事件目标是事件发送到的元素:
使用DOM事件stream定位事件的对象。 事件目标是
Event.target
属性的值。
srcElement
是IE获取target
的非标准方式。
当前事件目标是具有当前调用的事件监听器的元素:
在事件stream中,当前事件目标是与当前正在调度的事件处理程序关联的对象。 这个对象可能是事件目标本身或其祖先之一。 当事件通过事件stream的各个阶段从一个对象传播到另一个对象时,当前事件目标会发生变化。 当前事件目标是
Event.currentTarget
属性的值。
在事件监听器中使用this
是获取当前事件目标的常用(和标准)方式。
有些事件有相关的目标:
用于标识与UI事件相关的辅助
EventTarget
,具体取决于事件的types。
fromElement
和toElement
是IE获取相关目标的非标准方式。