2012-09-28 20 views
16

¿hay alguna diferencia entre los dos métodos siguientes? es # 1 más rápido que # 2?

#1 
$('#selector').on('click',function(){ 
    $(this)... 
    // do stuff with clicked element 
}) 

and 

#2 
$('#selector').on('click',function(e){ 
    $(e.currentTarget).... 
    // do stuff with clicked element 
}) 
+1

lectura de la documentación (http://api.jquery.com/ event.currentTarget /) debería haberle dado la respuesta. – j08691

+0

Este informe de error es relevante: http://bugs.jquery.com/ticket/11756. Oficialmente use 'this' ya que ellos suponen que eso es lo que el 98% está haciendo. – Medorator

Respuesta

15

parece que son equivalentes en la mayoría de los casos, aunque "esto" parece más fácil de escribir

acuerdo con http://api.jquery.com/event.currentTarget/

event.currentTarget

Esta propiedad, típicamente será igual a la this de la función.

Si está utilizando jQuery.proxy u otra forma de manipulación alcance, this será igual a cualquier contexto que nos ha proporcionado, no event.currentTarget

+1

Gracias por esta respuesta: quería cambiar un controlador de eventos para usar una llamada ECMA5 .bind(), pero no pude encontrar la forma de obtener tanto el contexto original como el nuevo .este contexto. –

Cuestiones relacionadas