Spec-Zone.ru › Web APIs

Событие: свойство 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API