¿Alguien puede decirme la diferencia exacta entre currentTarget
y la target
propiedad en los eventos de Javascript con un ejemplo y qué propiedad se utiliza en qué escenario?
javascript
Valli69
fuente
fuente
Respuestas:
Básicamente, los eventos burbujean por defecto, por lo que la diferencia entre los dos es:
target
es el elemento que activó el evento (por ejemplo, el usuario hizo clic en)currentTarget
es el elemento al que está conectado el detector de eventos.Vea una explicación simple en esta publicación de blog .
fuente
XMLHttpRequest
target
= elemento que activó el evento.currentTarget
= elemento que tiene el detector de eventos.fuente
Ejemplo ejecutable mínimo
Si hace clic en:
luego lo
1
escucha y agrega el resultado:porque en ese caso:
2
es el elemento que originó el evento1
es el elemento que escuchó el eventoSi hace clic en:
en cambio, el resultado es:
Probado en cromo 71.
fuente
Si esto no se pega, intente esto:
corriente en se
currentTarget
refiere al presente. Es el objetivo más reciente que captó el evento que surgió de otros lugares.fuente
Si hace clic en la etiqueta P en el código anterior, recibirá tres alertas, y si hace clic en la etiqueta div, recibirá dos alertas y una sola alerta al hacer clic en la etiqueta del formulario. Y ahora mira el siguiente código,
Aquí event.target es [object HTMLParagraphElement], y event.curentTarget es [object HTMLDivElement]: Entonces
Aquí hicimos clic en la etiqueta P pero no tenemos oyente en P sino en su elemento padre div.
fuente
event.target es el nodo desde el que se originó el evento, es decir. donde sea que coloque su detector de eventos (en el párrafo o intervalo), event.target se refiere al nodo (donde el usuario hizo clic).
event.currentTarget , por el contrario, se refiere al nodo en el que se conectó el detector de eventos actual. Es decir. si adjuntamos nuestro detector de eventos en el nodo de párrafo, event.currentTarget se refiere al párrafo mientras event.target todavía se refiere a span. Nota: si también tenemos un detector de eventos en el cuerpo, entonces para este detector de eventos, event.currentTarget se refiere al cuerpo (es decir, el evento proporcionado como entrada para los receptores de eventos se actualiza cada vez que el evento burbujea un nodo hacia arriba).
fuente