2012-09-28 1 views
16

existe-t-il une différence entre les deux méthodes suivantes? est # 1 plus rapide 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

lecture de la documentation (http://api.jquery.com/ event.currentTarget /) aurait dû vous donner la réponse. – j08691

+0

Ce rapport de bug est pertinent: http://bugs.jquery.com/ticket/11756. Officiellement utiliser 'ceci 'puisqu'ils supposent que c'est ce que 98% font. – Medorator

Répondre

15

On dirait qu'ils sont équivalents dans la plupart des cas, bien que « cela » semble plus facile de taper

selon http://api.jquery.com/event.currentTarget/

event.currentTarget

Cette propriété sera généralement égale à la this de la fonction.

Si vous utilisez jQuery.proxy ou d'une autre forme de manipulation de portée, this sera égal à ce que le contexte que vous avez fourni, pas event.currentTarget

+1

Merci pour cette réponse - Je voulais changer un gestionnaire d'événement pour utiliser un appel ECMA5 .bind(), mais je n'ai pas réussi à comprendre comment obtenir le contexte .this original et le nouveau contexte .this. –

Questions connexes