8 Stimmen

JQuery: Was ist der Unterschied zwischen diesen beiden Aussagen?

Gibt es einen Unterschied zwischen diesen beiden Aussagen?

$(document).ready(function() {
    // Code
});

$(function() { 
    // Code
});

6voto

Russ Cam Punkte 120837

In der Auflösung gibt es keinen Unterschied, sie sind gleichwertig.

Aus dem entsprechenden Quellcode

jQuery = window.jQuery = window.$ = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context );
}

jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {

    /* .... irrelevant code.... */

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

1voto

igul222 Punkte 8497

Wenn Sie meinen

$(document).ready(function() {/* code here */});

und

$(function() {/* code here */});

dann gibt es keinen Unterschied zwischen den beiden. Letzteres ist nur eine Abkürzung, die das Gleiche bewirkt wie ersteres.

1voto

ChaosPandion Punkte 75527

Im Grunde genommen tun diese beiden Aussagen das Gleiche. Intern ruft jedoch die zweite Anweisung die erste Anweisung auf.

1voto

Pointy Punkte 387467

Ich denke, es ist wichtig, darauf hinzuweisen, dass die offizielle jQuery Linie ist, dass die zweite Syntax:

$(function() {
    // code here
});

bevorzugt wird. Warum? Weil es die Möglichkeit bietet, dass Herr Resig & Co. einen brillanten neuen Weg finden, um die Initialisierung beim Laden durchzuführen, der viel besser ist als die Verwendung des Ereignisses "ready". Wenn sie das tun und Sie die einfachere (zweite) Methode verwenden, dann wird Ihr Code sofort von der Verbesserung profitieren, ohne dass Sie etwas ändern müssen. Wenn Sie die explizite Bindung an das "ready"-Ereignis verwenden, bleiben Sie bei diesem Ansatz, bis Sie ihn ändern.

0voto

Vivin Paliath Punkte 90791

Haben Sie gemeint:

$(function ()
{
  /* ... */
});

Sie sind in jQuery gleichwertig. Letzteres ist eine Kurzform für Ersteres.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X