Event.target

La propiedad target de la interfaz del event.currentTarget es una referencia al objeto en el cual se lanzo el evento. Es diferente de event.currentTarget donde el controlador de eventos (event handler) es llamado durante la fase de bubbling or capturing del evento.

Sintaxis

const theTarget = algunEvento.target

Ejemplo

La propiedad event.target  puede ser usada para implementar una delegación del evento.

// Crear una lista
const ul = document.createElement('ul');
document.body.appendChild(ul);

const li1 = document.createElement('li');
const li2 = document.createElement('li');
ul.appendChild(li1);
ul.appendChild(li2);

function hide(e){
  // e.target se refiere elemento clickado <li>
  // Esto es diferente de e.currentTarget, que se referiría al padre <ul> en este contexto
  e.target.style.visibility = 'hidden';
}

// Incluir el 'listener' a la lista
// Se ejecutará cuando se haga click en cada <li>
ul.addEventListener('click', hide, false);

Especificaciones

Especificación Estado Comentario
DOM
La definición de 'Event.target' en esta especificación.
Living Standard
DOM4
La definición de 'Event.target' en esta especificación.
Obsolete
Document Object Model (DOM) Level 2 Events Specification
La definición de 'Event.target' en esta especificación.
Obsolete Definición inicial

Compatibilidad del navegador

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Característica Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Soporte básico (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte básico (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Notas de compatibilidad

En IE 6-8 el evento 'model' es diferente. Los eventos 'listeners' son  are incluidos con el método no estándar EventTarget.attachEvent (en-US). En este modelo, el evento 'object' tiene una propiedad Event.srcElement (en-US), en vez de la propiedad target, y tiene la misma semántica que event.target.

function hide(e) {
  // Soporte en IE6-8
  var target = e.target || e.srcElement;
  target.style.visibility = 'hidden';
}

También  ver