event.currentTarget

概述

当事件遍历 DOM 时,识别事件的当前目标对象(Identifies the current target for the event, as the event traverses the DOM.)。 该属性总是指向被绑定事件句柄(event handler)的元素。而与之对比的event.target ,则是指向触发该事件的元素。

例子

在将同一个事件处理器绑定到多个元素上时,event.currentTarget 使用起来很有趣。(event.currentTarget is interesting to use when attaching the same event handler to several elements.)

function hide(e){
  e.currentTarget.style.visibility = "hidden";
  // 该函数用作事件处理器时: this === e.currentTarget
}

var ps = document.getElementsByTagName('p');

for(var i = 0; i < ps.length; i++){
  ps[i].addEventListener('click', hide, false);
}

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes)[1] (Yes) ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? ? ? ?

[1]: IE6-8中,事件模型与标准不一样,使用非标准的 element.attachEvent 来绑定事件监听器。该模型中,没有等价于 event.currentTarget 的接口,且 this 指向全局对象。一种模拟 event.currentTarget 功能的方法是:将监听器包在一个函数中,然后使用 Function.prototype.call 调用这个包装函数,并将元素对象作为第一个参数。这样,this 就是想要的值了。

规范

DOM Level 2 Events: Event.currentTarget

相关链接

文档标签和贡献者

 此页面的贡献者: timwangdev, collhector, AlexChao, teoli, khalid32, ziyunfei
 最后编辑者: timwangdev,