概述
当事件遍历 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