The currentTarget property is a read-onlyEventTarget that identifies the object your event handler is attached to. Learn how it differs from event.target, why it is null outside a handler, and how it powers event delegation—with five examples and try-it labs.
01
Kind
Instance property
02
Type
EventTarget
03
Means
Handler’s element
04
vs target
Origin element
05
Outside handler
null
06
Status
Baseline widely
Fundamentals
Introduction
When you click a nested element, the event may bubble up to a parent that owns the listener. event.target is the nested element that was clicked. event.currentTarget is the parent that has the handler.
That difference is the heart of event delegation: one listener on a parent, many possible children as target, one stable currentTarget.
💡
Beginner tip
MDN: currentTarget is only meaningful inside the handler. If you store the event and read currentTarget later, it will be null.
Concept
Understanding Event.currentTarget
An instance property that answers: “Which object is running this listener right now?”
Value — an EventTarget (often an Element) the handler is attached to.
Read-only — you do not assign to it.
During the handler — set to that attached target.
Outside the handler — null (MDN).
Baseline Widely available on MDN (since July 2015); also in Web Workers.
Foundation
📝 Syntax
JavaScript
event.currentTarget
Value
An EventTarget representing the object to which the current event handler is attached.
Typical read inside a listener
JavaScript
parent.addEventListener("click", (event) => {
console.log(event.currentTarget); // the parent
console.log(event.target); // parent or a child
});
Compare
⚖️ currentTarget vs Related Ideas
Idea
Meaning
event.currentTarget
Element / target this handler is attached to
event.target
Element where the event originated
this (function listener)
Usually same as currentTarget
event.bubbles
Whether the event can travel up to parents
Delegation
Listen on parent; inspect target / currentTarget
Gotcha
⚠️ Why currentTarget Becomes null
After the handler finishes, the browser clears currentTarget. Saving the event object does not keep a lasting reference to the attached element via this property.
JavaScript
let saved;
button.addEventListener("click", (event) => {
saved = event;
console.log(event.currentTarget); // the button
});
// Later (outside the handler):
console.log(saved.currentTarget); // null
If you need the element later, store event.currentTarget (or its id) in your own variable while still inside the handler.
Event.currentTarget is marked Baseline Widely available on MDN (since July 2015). Logos use the shared browser-image-sprite.png sprite from this project. It is also available in Web Workers.
✓ Baseline · Widely available
Event.currentTarget
Read-only EventTarget: the object to which the current event handler is attached.
UniversalWidely available
Google ChromeFull support · Desktop & Mobile
Full support
Mozilla FirefoxFull support · Desktop & Mobile
Full support
Apple SafariFull support · macOS & iOS
Full support
Microsoft EdgeFull support · Chromium
Full support
OperaFull support · Modern versions
Full support
Internet ExplorerSupported (legacy)
Full support
Event.currentTargetExcellent
Bottom line: Use currentTarget for the listener host and target for the origin. Read it only inside the handler.
Wrap Up
Conclusion
Event.currentTarget is the element (or other EventTarget) your handler is attached to. Pair it with event.target to understand bubbling and delegation, and remember it is null outside the handler.
Assume target is always the element you listened on
Rely on this inside arrow function listeners
Confuse currentTarget with cancelable
Skip checking that a delegated target is inside the list
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about currentTarget
Listener host vs event origin—and null outside.
5
Core concepts
🎯01
Listener host
where handler lives
API
🎯02
vs target
origin element
Compare
❌03
Outside
becomes null
Gotcha
📋04
Delegation
one parent listener
Pattern
🎯05
Baseline
since Jul 2015
Status
❓ Frequently Asked Questions
It is a read-only property that identifies the EventTarget (usually an element) to which the current event handler is attached—not necessarily the element that was clicked or fired on.
No. MDN marks Event.currentTarget as Baseline Widely available (since July 2015). It is not Deprecated, Experimental, or Non-standard. It is also available in Web Workers.
event.target is where the event originated (for example the child that was clicked). event.currentTarget is the element that has this listener. With bubbling and delegation they often differ.
MDN notes that currentTarget is only available inside an event handler. If you save the Event object and read currentTarget later outside the handler, it is null.
Use it when your listener is on a parent (delegation) and you need a stable reference to that parent, or when you want the element the handler was bound to rather than a nested click target.
For a normal function listener registered with addEventListener, this usually equals event.currentTarget. Arrow functions do not get their own this, so prefer event.currentTarget there.
Did you know?
During capturing and bubbling, the same event object is reused as it visits each listener. That is why currentTarget changes (or clears) depending on which handler is running—and why it is empty once dispatch is done.