JS властивість Event.target


Загальний опис

target — це властивість об'єкта Event, яка повертає посилання на елемент, що викликав подію. Це може бути будь-який HTML-елемент, на якому сталася подія, наприклад, натискання кнопки або введення тексту в поле форми.

target є ключовим інструментом для обробки подій, оскільки дозволяє визначити, який саме елемент викликав подію. Наприклад, якщо користувач натискає на кілька кнопок на сторінці, кожна з яких виконує певну дію, можна за допомогою event.target з'ясувати, яку кнопку натиснули.

Властивість target працює зі всіма стандартними подіями JavaScript, такими як click, input, keydown, focus, та інші. Важливо розуміти, що ця властивість повертає саме елемент, на якому була викликана подія, а не той елемент, до якого була прив'язана подія (це різниця між target і currentTarget).

Приклад використання:

document.addEventListener('click', function(event) {
  console.log(event.target);  // Виведе в консоль елемент, на якому стався клік
});

У цьому прикладі обробник подій для події click спрацьовує на всьому документі. Однак за допомогою event.target ми можемо точно визначити, на якому саме елементі було натиснуто.

Коли подія відбувається на вкладеному елементі, наприклад, при натисканні на текст всередині кнопки, event.target поверне цей внутрішній елемент (текстовий елемент), а не саму кнопку. Для цього використовують різні техніки для перевірки чи зміни target залежно від задачі.

автор: Bond

Порада

Для динамічно створених елементів (елементів, доданих у DOM після завантаження сторінки), обробка подій через target працює однаково, що дозволяє ефективно керувати новими елементами. Не треба змінювати код для прив'язки подій, що робить цей інструмент універсальним для будь-яких оновлень на сторінці.

автор: Bond
Порада

Завжди варто перевіряти тип або властивості елемента, отриманого через event.target. Це допомагає уникнути помилок при роботі з різними типами елементів. Наприклад, якщо подія сталася на зображенні або на посиланні, методи доступу до цих елементів можуть відрізнятися.

автор: Bond
Порада

event.target може змінюватися при використанні технологій, які маніпулюють DOM, таких як shadow DOM. Якщо ви використовуєте подібні технології, треба враховувати цю специфіку, щоб уникнути неправильного поводження з елементами.

автор: Bond

Синтаксис

event.target

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 7 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
14.5.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому випадку ми використовуємо event.target разом із closest() для того, щоб визначити найближчий елемент списку (li), навіть якщо клік був на вкладеному елементі всередині li. Це корисно, коли нам потрібно працювати з батьківськими елементами, незалежно від того, куди саме користувач натиснув.

HTML

<div class="list">перший елемент list</div>
<div class="list">другий елемент list</div>

JS

document.querySelector('.list').addEventListener('click', function(event) {
  const clickedItem = event.target.closest('li');
  if (clickedItem) {
    console.log(`Вибрано елемент списку: ${clickedItem.textContent}`);
  }
});
автор: Bond

У цьому прикладі ми вішаємо обробник подій на контейнер, який містить кілька кнопок. За допомогою event.target визначаємо, що натиснуто саме кнопку, і виводимо її текст. Такий підхід дозволяє обробляти події для кількох елементів за допомогою одного обробника.

HTML

<div class="container">перший елемент container</div>
<div class="container">другий елемент container</div>

JS

document.querySelector('.container').addEventListener('click', function(event) {
  if (event.target.tagName === 'BUTTON') {
    console.log(`Натиснута кнопка з текстом: ${event.target.textContent}`);
  }
});
автор: Bond

Цей приклад демонструє роботу з подіями на різних елементах (кнопках, текстовому полі, чекбоксі) та відстеження подій за допомогою event.target. Користувач бачить повідомлення, коли натискає кнопки, вводить текст або змінює стан чекбоксу, що дозволяє чітко показати взаємодію з DOM.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід