2012-09-28 6 views
16

Gibt es einen Unterschied zwischen den beiden folgenden Methoden? ist # 1 schneller als # 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

der Dokumentation Reading (http://api.jquery.com/ event.currentTarget /) sollte dir die Antwort gegeben haben. – j08691

+0

Dieser Fehlerbericht ist relevant: http://bugs.jquery.com/ticket/11756. Offiziell benutze 'this', da sie annehmen, dass das 98% tun. – Medorator

Antwort

15

scheint, wie sie in den meisten Fällen gleich sind, obwohl "das" einfacher scheint

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

event.currentTarget

Diese Eigenschaft wird typischerweise auf die gleich Typ this der Funktion.

Wenn Sie jQuery.proxy oder eine andere Form der Umfang Manipulation verwenden, wird this gleich sein, was auch immer Kontext Sie zur Verfügung gestellt haben, nicht event.currentTarget

+1

Vielen Dank für diese Antwort - Ich wollte einen Event-Handler ändern, um einen ECMA5 .bind() - Aufruf zu verwenden, konnte aber nicht herausfinden, wie der ursprüngliche .this-Kontext und der neue .this-Kontext abgerufen werden. –

Verwandte Themen