EventTarget est une interface implémentée par des objets qui peuvent recevoir des évènements et avoir des auditeurs.

Element, document, et window sont les évènements cibles les plus communs, cependant d'autres objets peuvent être utilisés comme évènements cibles, par exemple XMLHttpRequest, AudioNode, AudioContext et d'autres.

De nombreux évènements cibles (incluant les éléments documents et fenêtres) supportent également le réglage event handlers via les propriétés et attributs on... .

Constructeur

EventTarget()
Crée une nouvelle instance d'EventTarget.

Méthodes

EventTarget.addEventListener()
Enregiste un gestionnaire d'évènement d'un type d'évènement spécifique EventTarget.
EventTarget.removeEventListener()
Supprime un auditeur d'évènements de EventTarget.
EventTarget.dispatchEvent()
Envoie un élément à EventTarget.

Exemples

Une implémentation simple

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];

  for (var i = 0, l = stack.length; i < l; i++) {
    stack[i].call(this, event);
  }
  return !event.defaultPrevented;
};

Spécifications

Spécifications Statuts Commentaires
DOM
La définition de 'EventTarget' dans cette spécification.
Standard évolutif Pas de changement.
Document Object Model (DOM) Level 3 Events Specification
La définition de 'EventTarget' dans cette spécification.
Obsolete Quelques paramètres sont désormais optionnels (listener), ou accepte la valeur null (useCapture).
Document Object Model (DOM) Level 2 Events Specification
La définition de 'EventTarget' dans cette spécification.
Obsolete Définition initiale.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple1 Oui197

10.1

1 — 10.11

EventTarget() constructor64 ?59 Non51 Non
addEventListener13121

9

Oui4 5

71
dispatchEvent4122

9

Oui6 7

93.2
removeEventListener1121971
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple11 Oui47

10.1

1 — 10.12

Oui
EventTarget() constructor6464 ?5951 Non Non
addEventListener1313 Oui471 Oui
dispatchEvent44 Oui4 Oui Oui Oui
removeEventListener11 Oui471 Oui

1. Window.EventTarget did not exist on versions of Safari before 10.1.

2. Window.EventTarget did not exist on versions of Safari iOS before 10.1.

3. Before Chrome 49, the type and listener parameters were optional.

4. Older versions of IE supported an equivalent, proprietary, EventTarget.attachEvent() method.

5. Supported as attachEvent.

6. Older versions of IE supported an equivalent, proprietary, EventTarget.fireEvent() method.

7. Supported as fireEvent.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, Gibus, Hell_Carlito, Iwagg, fscholz
Dernière mise à jour par : SphinxKnight,