В JavaScript target
и currentTarget
являются свойствами объекта события, который генерируется при возникновении события. Они представляют различные элементы дерева DOM, связанные с событием.
target
относится к элементу, для которого изначально было инициировано событие, тогда как currentTarget
относится к элементу, который в настоящее время обрабатывает событие, всплывающее вверх по дереву DOM.
Вот пример:
<div id="parent"> <div id="child">Click me!</div> </div> const parent = document.querySelector('#parent'); const child = document.querySelector('#child'); parent.addEventListener('click', function(event) { console.log('target:', event.target.id); console.log('currentTarget:', event.currentTarget.id); }); child.addEventListener('click', function(event) { console.log('target:', event.target.id); console.log('currentTarget:', event.currentTarget.id); });
В этом примере у нас есть родительский элемент div
с id
из parent
и дочерний элемент div
с id
из child
. Мы прикрепили прослушиватель событий click
к родительскому и дочернему элементам.
При щелчке по дочернему элементу событие всплывает к родительскому элементу, также активируя его прослушиватель событий. В этом случае вывод логов консоли будет таким:
target: child currentTarget: parent target: child currentTarget: child
Как видите, свойство target
всегда относится к элементу, по которому щелкнули, а свойство currentTarget
относится к элементу, который в данный момент обрабатывает событие. В случае прослушивателя родительского события свойство currentTarget
относится к родительскому элементу, поскольку это элемент, через который в данный момент распространяется событие. В случае прослушивателя дочерних событий свойство currentTarget
относится к самому дочернему элементу, поскольку это элемент, который в данный момент обрабатывает событие.
Спасибо за прочтение, хорошего дня 📝🙌