EventTarget
is a DOM interface implemented by objects that can receive events and may have listeners for them.
Element
, Document
, and Window
are the most common event targets, but other objects can be event targets, too. For example XMLHttpRequest
, AudioNode
, AudioContext
, and others.
Many event targets (including elements, documents, and windows) also support setting event handlers via onevent
properties and attributes.
Constructor
EventTarget()
- Creates a new
EventTarget
object instance.
Methods
EventTarget.addEventListener()
- Registers an event handler of a specific event type on the
EventTarget
. EventTarget.removeEventListener()
- Removes an event listener from the
EventTarget
. EventTarget.dispatchEvent()
- Dispatches an event to this
EventTarget
.
Additional methods in Mozilla chrome codebase
Mozilla includes a couple of extensions for use by JS-implemented event targets to implement onevent
properties.
See also WebIDL bindings.
void setEventHandler(DOMString type, EventHandler handler)
EventHandler getEventHandler(DOMString type)
Example
Simple implementation of EventTarget
var EventTarget = function() {
this.listeners = {};
};
EventTarget.prototype.listeners = null;
EventTarget.prototype.addEventListener = function(type, callback) {
if (!(type in this.listeners)) {
this.listeners[type] = [];
}
this.listeners[type].push(callback);
};
EventTarget.prototype.removeEventListener = function(type, callback) {
if (!(type in this.listeners)) {
return;
}
var stack = this.listeners[type];
for (var i = 0, l = stack.length; i < l; i++) {
if (stack[i] === callback){
stack.splice(i, 1);
return;
}
}
};
EventTarget.prototype.dispatchEvent = function(event) {
if (!(event.type in this.listeners)) {
return true;
}
var stack = this.listeners[event.type].slice();
for (var i = 0, l = stack.length; i < l; i++) {
stack[i].call(this, event);
}
return !event.defaultPrevented;
};
Specifications
Specification | Status | Comment |
---|---|---|
DOM The definition of 'EventTarget' in that specification. |
Living Standard | No change. |
Document Object Model (DOM) Level 3 Events Specification The definition of 'EventTarget' in that specification. |
Obsolete | A few parameters are now optional (listener ), or accepts the null value (useCapture ). |
Document Object Model (DOM) Level 2 Events Specification The definition of 'EventTarget' in that specification. |
Obsolete | Initial definition. |
Browser compatibility
BCD tables only load in the browser
See also
- Event reference - the events available in the platform.
- Event developer guide
Event
interface