2011-09-12 16 views
13

Con este código HTMLvivo evento de clic de informes diferentes fuentes en Firefox vs Chrome

<div> 
    <button> 
    <img src="https://img.skitch.com/20110912-1m2qj31m7sxmh46uheef63gutu.gif"> 
    </button> 
</div> 

y esto jQuery

$(document).ready(function() { 
    $("body").live("click", function(event) { 
    $("body").append(event.target.tagName);    
    }); 
}); 

¿Por qué es el nodo de destino del evento en Chrome la imagen y en Firefox es el botón ?

prueba jsFiddle ->http://jsfiddle.net/MikeGrace/YC5A7/

+1

Es botón en IE8 también. –

+0

Extraño. Parece que IE/FF no quiere botones desactivados del contenido interno. Mientras que Chrome lo hace de la manera lógica :( –

+0

@Mike Grace: Es el 'BOTÓN 'para mí en Chrome. _Editar: _ La imagen no se cargó para mí, pero veo lo que quieres decir. – Shef

Respuesta

4

Esto no se limita a las imágenes, por supuesto - me pellizcó su código en http://jsfiddle.net/YC5A7/13/ y consiguió el mismo resultado con un hipervínculo ordinaria.

De acuerdo con los documentos jQuery, event.target "puede ser el elemento que se registró para el evento o un descendiente del mismo". Por lo tanto, sus resultados son consistentes con el propósito previsto de ese método.

Sin embargo, event.currentTarget tiene el resultado deseado en todos los navegadores: http://jsfiddle.net/YC5A7/16/

+1

Muy interesante. ¡Gracias por tu ayuda! –

Cuestiones relacionadas