2012-09-28 29 views
16

aşağıdaki iki yöntem arasında bir fark var mıdır? # 1'den # 1 daha hızlı mı?

#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

belgelerine (http://api.jquery.com/ Okuma değil, verdiğiniz her ne bağlam eşit olacaktır event.currentTarget /) size cevabı vermiş olmalı. – j08691

+0

Bu hata raporuyla ilgilidir: http://bugs.jquery.com/ticket/11756. Resmi olarak bunu '%' yaptıklarından,% 98'in yaptıklarını varsayarlar. – Medorator

cevap

15

"Bu" Bu özellik genellikle eşit olacaktır http://api.jquery.com/event.currentTarget/

event.currentTarget

göre

yazmak daha kolay görünüyor olsa da, çoğu durumda eşdeğerdir gibi görünüyor Fonksiyonun this.

Eğer jQuery.proxy veya kapsam manipülasyon başka bir form kullanıyorsanız, this event.currentTarget

+1

Bu yanıt için teşekkür ederiz - Bir olay işleyicisini bir ECMA5 .bind() çağrısı kullanacak şekilde değiştirmek istedim, ancak hem orijinal .this bağlamını hem de yeni .this bağlamını nasıl alacağımı anlayamadım. –

İlgili konular