2

重複の可能性:
これらの jQuery 対応関数の違いは何ですか?

私はいつも使用しています:

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

そこに私のjQuery / JavaScriptコードを挿入しました(コードを実行する前にhtmlページが完全にロードされるのを待つため)。

最近、私はこれを見ました:

jQuery(function($){
    //Code goes here
});

ここで何が違うのかを検索しました(主に「jQuery」の部分が何であるか)。

私の質問:

  • jQuery後者のコード ブロックの部分は何をしますか?
  • その関数に対して '($)' 引数は何をしていますか?
  • 私の 2 つのコード ブロックの例の間に (ページが読み込まれるのを待つ以外に) 違いはありますか?
4

4 に答える 4

3

$主な違いは、変数の周りの閉鎖です。最初のスニペットは、$変数が解放されていないことを前提としています ( .noConflict()を使用して、または使用している別のライブラリも$jQuery 変数としてではなく使用している場合)。

2 番目の実装は、何の仮定も行わないため安全ですが、$変数をパラメーターにすることで、内部コードで変数を安全に使用できます。

于 2012-11-28T18:02:12.083 に答える
2

それは同じことです:

UsingjQuery(function(){})は単に省略形です$(document).ready(function (){});

注:$またはを使用できます。jQuery

于 2012-11-28T18:01:12.117 に答える
1

彼らは同じです。 ドキュメントから

JQuery Call back (jQuery( callback ))

「この関数は $(document).ready() と同じように動作し、DOM の準備ができていることに依存するページ上の他の $() 操作をラップするために使用する必要があります。この関数は技術的には連鎖可能ですが、実際にはそれに対して連鎖するのはあまり役に立ちません。」

于 2012-11-28T18:04:17.753 に答える
0

それらはほぼ同じです。

jQuery2番目の関数では、つまり関数に渡して$います。$の省略形ですjQuery

呼び出し時のjQueryライブラリコードから直接$()

// tests to see if you passed in a function
} else if (jQuery.isFunction(selector)) { 
    // adds the function to be called when jQuery fires the ready event
    return rootjQuery.ready(selector); 
}

コメントは私のものです。

于 2012-11-28T18:02:13.067 に答える