EventTarget
is an 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 on...
properties and attributes.
EventTarget.addEventListener()
EventTarget
.EventTarget.removeEventListener()
EventTarget
.EventTarget.dispatchEvent()
EventTarget
.Mozilla extensions for use by JS-implemented event targets to implement on* properties. See also WebIDL bindings.
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 this.removeEventListener(type, callback); } } }; EventTarget.prototype.dispatchEvent = function(event) { if (!(event.type in this.listeners)) { return; } var stack = this.listeners[event.type]; event.target = this; for (var i = 0, l = stack.length; i < l; i++) { stack[i].call(this, event); } };
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. | Working Draft | 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. | Recommendation | Initial definition. |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 1.0 | (Yes) | 1.0 (1.7 or earlier) | 9.0 | 7 | 1.0[1] |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 1.0 | (Yes) | 1.0 (1) | 9.0 | 6.0 | 1.0 |
[1] window.EventTarget
does not exist.
Event
interface
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget