2009-07-21 10 views
8

Ich habe vier verschiedene Möglichkeiten gesehen, wie jQuery eine Funktion ausführen kann, wenn das Dokument fertig ist. Sind diese alle gleichwertig?Vier Variationen von jQuery ready() - was ist der Unterschied?

$(document).ready(function() { 
    alert('$(document).ready()'); 
}); 

$().ready(function() { 
    alert('$().ready()'); 
}); 

$(function() { 
    alert('$()'); 
});  

jQuery(function ($) { 
    alert('jQuery()'); 
}); 
+2

btw finden, denke ich '$ (Fenster) .ready (...) 'funktioniert auch. – geowa4

Antwort

11

Es gibt keinen Unterschied.

$ ist das gleiche wie jQuery. Wenn Sie die unminifizierte Quelle anzeigen, sehen Sie var $ = jQuery = ... oder etwas in diesem Sinne.

Die jQuery Funktion überprüft die Art der es Parameter ist, wenn es eine Funktion ist, es es das gleiche wie $(document).ready(...)

Aufruf jQuery ohne Parameter Standardwerte behandelt document zu verwenden. So sind $() und $(document) identisch. Probieren Sie es in Firebug.

+2

Das erklärt nicht die zweite – Draemon

+0

Mist, ich dachte, ich habe sie alle. warten Sie mal. – geowa4

+0

bearbeitet, um die zweite aufzunehmen. – geowa4

4

re: Geroge IV Kommentare zu $ ​​() == $ (Dokument) ist korrekt. Von der unminified Quelle (init ist das, was intern erhält genannt):

init: function(selector, context) { 
    // Make sure that a selection was provided 
    selector = selector || document; 

Auch von der Quelle, frühere Gespräche zu sichern:

// HANDLE: $(function) 
    // Shortcut for document ready 
    } else if (jQuery.isFunction(selector)) 
     return jQuery(document).ready(selector); 

diese Community Wiki werden soll. Ich habe in das Innenleben von jquery immer interessiert, jetzt habe ich eine Entschuldigung hatte :-)

+0

gute Jagd @Davd! – geowa4

+0

BTW, "Dies sollte Gemeinschaft Wiki sein" <- also warum nicht? – geowa4

+0

Ah Ich weiß nicht, wie ich das machen soll oder ob ich es kann, aber ich habe einen Link dazu geöffnet :-D –

0

es auch sollte erwähnt werden, Dieses Symbol, das Sie übergeben, wird in der Funktion verwendet. Zum Beispiel:

$(function(jQuery) { 
    // now I can use jQuery instead $ 
    jQuery("body").append("<div></div>"); // adds div to the end of body element 
}); 

wenn Sie $ wollen verwenden - Sie können Funktion param in diese Situation leer

Das eigentliche Beispiel lassen Sie hier http://jsfiddle.net/yura_syedin/BNgd4/

Verwandte Themen