Event.currentTarget
Определяет элемент, в котором в данный момент обрабатывается событие, при движении события внутри DOM. Всегда совпадает элементом, на котором обработчик события был назначен, в отличие от свойства event.target
, идентифицирующего элемент, на котором событие возникло.
Пример
event.currentTarget
используется, когда один и тот же обработчик события присваивается нескольким элементам.
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);
}
// click around and make paragraphs disappear
Спецификации
Спецификация | Статус | Комментарии | |
---|---|---|---|
Document Object Model (DOM) Level 2 Events Specification Определение 'Event.currentTarget' в этой спецификации. |
Устаревшая |
|
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да)[1] | (Да) | ? |
Возможность | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Базовая поддержка | ? | ? | ? | ? | ? |
[1] В Internet Explorer с 6 по 8, событийная модель иная. Слушатели событий привяззываются к нестандартному методу element.attachEvent
. В данной модели не существует эквивалента event.currentTarget
и this
- это глобальный объект. Единственный способ имитировать свойство event.currentTarget
- обернуть ваш обработчик в функцию, вызывающую обработчик с использованием Function.prototype.call
с элементом в качестве первого аргумента. Данным способом this
примет ожидаемое значение.