The target
property of the
Event
interface is a reference to the object onto which the event was
dispatched. It is different from Event.currentTarget
when the event
handler is called during the bubbling or capturing phase of the event.
Syntax
const theTarget = someEvent.target;
Value
Example
The event.target
property can be used in order to implement event
delegation.
// Make a list
const ul = document.createElement('ul');
document.body.appendChild(ul);
const li1 = document.createElement('li');
const li2 = document.createElement('li');
ul.appendChild(li1);
ul.appendChild(li2);
function hide(evt) {
// e.target refers to the clicked <li> element
// This is different than e.currentTarget, which would refer to the parent <ul> in this context
evt.target.style.visibility = 'hidden';
}
// Attach the listener to the list
// It will fire when each <li> is clicked
ul.addEventListener('click', hide, false);
Specifications
Specification | Status | Comment |
---|---|---|
DOM The definition of 'Event.target' in that specification. |
Living Standard | |
DOM4 The definition of 'Event.target' in that specification. |
Obsolete | |
Document Object Model (DOM) Level 2 Events Specification The definition of 'Event.target' in that specification. |
Obsolete | Initial definition |
Browser compatibility
BCD tables only load in the browser
Compatibility notes
On IE 6–8, the event model is different. Event listeners are attached with the
non-standard EventTarget.attachEvent()
method.
In this model, the event object has a Event.srcElement
property (instead
of the target
property) and it has the same semantics as
Event.target
.
function hide(evt) {
// Support IE6-8
var target = evt.target || evt.srcElement;
target.style.visibility = 'hidden';
}