Event.currentTarget is a read-onlyEventTarget that identifies the object to which the current event handler is attached (MDN). It is not always the same as event.target, which is where the event first fired (often a child that bubbled up).
Read the notes below before you rely on this property. Prefer feature detection when support is limited.
Syntax
Use event.currentTarget. Start with this line.
JavaScript
event.currentTarget
Call
What it does
event.currentTarget
Primary signature.
Built into the browser. Read event.currentTarget on an Event instance — no import required.
Library declarations
JavaScript
event.currentTarget
Parameters
This member has no parameters beyond those shown in the signature.
During the click handler.currentTarget points at the button.
Save the Event. Storing event does not freeze currentTarget.
Later click. Reading saved.currentTarget outside that handler yields null.
Rule. Copy what you need (id, element reference) inside the handler if you need it later.
Compatibility
Browser Support
Event.currentTarget is marked Baseline Widely available on MDN (since July 2015). 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. Supported across modern browsers and legacy IE.
100%Widely available
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
Event.currentTargetExcellent
Bottom line: Safe to use everywhere. Read event.currentTarget inside the handler for the bound element; use event.target for the origin. Remember it becomes null after the handler finishes.
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.