¿Puede alguien decirme la diferencia exacta entre currentTarget
y target
propiedad en eventos de Javascript con el ejemplo y qué propiedad se utiliza en qué escenario?¿Cuál es la diferencia exacta entre la propiedad currentTarget y la propiedad de destino en javascript
Respuesta
Básicamente, events bubble por defecto por lo que la diferencia entre los dos es:
target
es el elemento que desencadenó el evento (por ejemplo, el usuario hizo clic en)currentTarget
es el elemento que el detector de eventos está unido a.
Consulte una explicación simple en este blog post.
target = elemento que desencadenó el evento; currentTarget = elemento que escucha el evento. – markmarijnissen
@markmarijnissen Definitivamente debe poner su comentario como una respuesta, ya que es más útil que la respuesta anterior y más votado también! – Andrea
¿Puede actualizar su respuesta por [este comentario] (http://stackoverflow.com/questions/10086427/what-is-the-exact-difference-between-currenttarget-property-and-target-property#comment39457506_10086501) –
target
= elemento que desencadenó el evento.
currentTarget
= elemento que escucha el evento.
example man, example! – Martian2049
Si esto no se está pegando, intente esto:
actual en currentTarget
se refiere al presente. Es el objetivo más reciente que atrapó el evento que surgió de otros lugares.
ejemplo Mínimo
window.onload = function() {
var resultElem = document.getElementById('result')
document.getElementById('1').addEventListener(
'click',
function(event) {
resultElem.innerHTML += ('<div>target: ' + event.target.id + '</div>')
resultElem.innerHTML += ('<div>currentTarget: ' + event.currentTarget.id + '</div>')
},
false
)
document.getElementById('2').dispatchEvent(
new Event('click', { bubbles:true }))
}
<div id="1">1
<div id="2">2
</div>
</div>
<div id="result">
<div>result:</div>
</div>
Cuando se hace clic y se enumeran a 1
en 2
, el resultado es:
target: 2
currentTarget: 1
porque en ese caso:
2
es el elemento que originó el evento1
es el elemento que escuchó el evento
event.target es el nodo desde el que se originó el evento, es decir. donde quiera que coloque el oyente de su evento (en el párrafo o el lapso), event.target se refiere al nodo (donde el usuario hizo clic).
event.currentTarget, en el lado opuesto, se refiere al nodo en el que se adjuntó el detector de eventos actuales. Es decir. si adjuntamos nuestro oyente de evento en el nodo de párrafo, event.currentTarget se refiere a un 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 evento-oyente, event.currentTarget se refiere al cuerpo (es decir, el evento proporcionado como entrada a event-listerners se actualiza cada vez que el evento burbujea un nodo).
<style>
body * {
margin: 10px;
border: 1px solid blue;
}
</style>
<form onclick="alert('form')">FORM
<div onclick="alert('div')">DIV
<p onclick="alert('p')">P</p>
</div>
</form>
Si clic en la etiqueta P en el código anterior por lo que recibirá tres de alerta, y si se hace clic en la etiqueta div obtendrá dos alerta y una sola alerta al hacer clic en el formulario etiqueta. Y ahora ver el siguiente código,
<style>
body * {
margin: 10px;
border: 1px solid blue;
}
</style>
<script>
function fun(event){
alert(event.target+" "+event.currentTarget);
}
</script>
<form>FORM
<div onclick="fun(event)">DIV
<p>P</p>
</div>
</form>
[ oponerse HTMLParagraphElement] [HTMLDivElement objeto]
Aquí event.target es [HTMLParagraphElement objeto], y event.curentTarget es [objeto HTMLDivElement]: Así
event.target es el nodo desde el que se originó el evento, y event.currentTarget, por el contrario, se refiere al nodo en el que oyente actual de eventos fue attached.To saber más see bubbling
Aquí hicimos clic en la etiqueta P, pero no tenemos listener en P sino en su elemento padre div.
- 1. Cuál es la diferencia entre Propiedad y Propiedad de Dependencia
- 2. ¿Cuál es la diferencia entre target y currenttarget en flex?
- 3. ¿cuál es la diferencia entre propiedad estática y singleton?
- 4. ¿Cuál es la diferencia entre Arreglo de JavaScript y Objeto, excepto la propiedad .length?
- 5. Diferencia entre la propiedad y método
- 6. ¿Cuál es la diferencia entre una propiedad de dependencia y una propiedad adjunta en WPF?
- 7. ¿Cuál es la diferencia entre una propiedad de lectura y una propiedad de asignación no atómica?
- 8. Javascript ¿cuál es la propiedad en hasOwnProperty?
- 9. ¿Cuál es la diferencia entre la propiedad de solo lectura y la función en .net?
- 10. Honestamente, ¿cuál es la diferencia entre la variable pública y el acceso público a la propiedad?
- 11. ¿Cuál es la diferencia entre una propiedad parametrizada y la función en vb.net?
- 12. ¿Cuál es la diferencia entre la propiedad pública, amigo y variable pública en VB6
- 13. Cuál es la diferencia entre una propiedad del sistema y la variable de entorno
- 14. ¿Diferencia entre la variable miembro y la propiedad miembro?
- 15. ¿Cuál es la diferencia entre el método NavigationService.Navigate() y la propiedad PhoneApplicationFrame.Source?
- 16. ¿cuál es la diferencia entre text/javascript y aplicación/javascript
- 17. Método vs propiedad en C# - ¿cuál es la diferencia
- 18. ¿Cuál es la diferencia entre un padre y una propiedad de referencia en Google App Engine?
- 19. ¿Cuál es la diferencia entre 'débil' y 'Asignar' en delegado declaración de propiedad
- 20. ¿Cuál es la diferencia entre una propiedad de navegación y una asociación en EF?
- 21. ¿Cuál es la diferencia real entre la propiedad Reciclaje/Estándar de VirtualizationMode en VirtualizingStackPanel?
- 22. ¿Cuál es la diferencia entre $ get y $ find en JavaScript?
- 23. ¿Cuál es la diferencia entre 'y "en JavaScript?
- 24. En JavaScript, ¿cuál es la diferencia entre indexOf() y search()?
- 25. ¿Cuál es la diferencia entre 987 y (987) en JavaScript?
- 26. ¿Cuál es la diferencia entre isPrototypeOf y instanceof en Javascript?
- 27. ¿Cuál es la diferencia entre undefined y window.undefined en JavaScript?
- 28. ¿Cuál es la diferencia entre children y childNodes en JavaScript?
- 29. Diferencia entre la propiedad y el campo en C# 3.0 +
- 30. ¿Cuál es la diferencia entre [indefinido] y [,]?
Su causa importante es que algunos navegadores tienen diferentes enfoques, por ejemplo, si escuchas un evento de copia div, en FF obtendrás un textNode en lugar de un elemento, pero el oyente estará en el nivel div. – Nikos