Mira este código:destino al hacer clic
<div>
<a href = "#"><span>Click me MAN !</span></a>
</div>
<script type = "text/javascript">
window.onload = function() {
document.body.addEventListener ("click", function (event) {
var target = event.target;
alert ("Returns \"" + target.nodeName + "\". Just want \"" + target.parentNode.nodeName + "\"")
}, false);
}
</script>
se puede ver el elemento "span" dentro de un "enlace", cuando el "enlace" se hace clic en el objetivo actual es el mismo "span". ¿Cómo puede el "event.target" devolver el "enlace" en lugar de "span"?
Gracias y no, no quiero usar "parentNode".
¿Por qué exactamente estás escuchando un clic en el cuerpo en lugar de solo apuntar a la etiqueta de anclaje? –
@Matt: es una buena idea reducir los manejadores de eventos a un mínimo y usar el hecho de que la mayoría de los eventos generan el árbol DOM, una técnica conocida como * event delegation *. Esto puede ser lo que está haciendo el OP. –