Событие: свойство currentTarget
Базовая Широко поддерживается
Эта функция хорошо отработана и работает во многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в Веб-воркерах.
Только для чтения currentTarget свойство интерфейса Event идентифицирует элемент, к которому прикреплен обработчик события.
Это не всегда будет тот же элемент, на котором событие было сгенерировано, так как событие может быть сгенерировано на потомке элемента с обработчиком, а затем передан вверх до элемента с обработчиком. Элемент, на котором событие было сгенерировано, указывается свойством Event.target.
Обратите внимание, что значение currentTarget доступно только в обработчике события. За пределами обработчика события оно будет null. Это означает, что, например, если вы сохраните ссылку на объект Event внутри обработчика события, а затем обратитесь к его свойству currentTarget за пределами обработчика, его значение будет null.
Значение
Объект EventTarget, представляющий объект, к которому прикреплен текущий обработчик события.
Примеры
currentTarget против target
Этот пример демонстрирует разницу между currentTarget и target.
HTML
На странице есть «родительский» <div>, содержащий «дочерний» <div>.
<div id="parent"> Click parent <div id="child">Click child</div> </div> <button id="reset">Reset</button> <pre id="output"></pre>
JavaScript
Обработчик события прикреплен к родителю. Он выводит значения event.currentTarget и event.target.
У нас также есть кнопка «Сброс», которая просто перезагружает пример.
const output = document.querySelector("#output");
const parent = document.querySelector("#parent");
parent.addEventListener("click", (event) => {
const currentTarget = event.currentTarget.getAttribute("id");
const target = event.target.getAttribute("id");
output.textContent = `Current target: ${currentTarget}\n`;
output.textContent += `Target: ${target}`;
});
const reset = document.querySelector("#reset");
reset.addEventListener("click", () => document.location.reload());
Результат
Если вы нажмёте внутри дочернего элемента <div>, то target укажет на дочерний элемент. Если вы нажмёте внутри родительского элемента <div>, то target укажет на родительский элемент.
В обоих случаях, currentTarget указывает на родительский элемент, потому что именно к нему прикреплён обработчик.
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-event-currenttarget② |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
currentTarget |
1 | 12 | 1 | 7 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget