1

重複の可能性:
複数の$(document).ready(function()セクションを持つことができますか?

同じページで$(document).readyを複数回呼び出しても大丈夫ですか?もしそうなら、コードが実行される順序はどのように解決され、これは何らかの影響を及ぼしますか

RailsアプリでjQueryを使用しています。私はアプリケーションを通じて使用されるjavascriptのいくつかのレベルを持っており、それらはすべてjQueryを使用しています。

たとえば、application.jsにFlash通知をフェードアウトするデフォルトのコードがあります。すべてのプロジェクトモデルビューに含まれているprojects.jsファイルがあり、レンダリングされたビューにのみ含まれているproject/edit.jsがあります。編集アクションによって。

私が使用している3つのjsファイルすべてで:

$(document).ready
{
   //Do something
}
4

3 に答える 3

6

大丈夫だよ。

実行順序は、使用された順序と同じになります。

先入先出

readyListjQuery には、ready イベントのすべてのコールバックを格納するという内部キューがあります。コールバックで関数を呼び出すときreadyは、単純にそれをキューに追加し、DOM の準備ができたらキュー全体を起動します。

jQuery のソース コードを見ると、次のように簡単にわかります。

ソースコード:

// The deferred used on DOM ready
readyList,
...
...

ready: function( fn ) {
    ...
    // Add the callback
    readyList.add( fn );

    return this;
}
于 2012-05-17T10:21:05.847 に答える
1

それらは、添付されたのと同じ順序で実行され、そうしても問題ありません。ただし、それ自体が 2 つの関数呼び出しであるため、lessen 関数呼び出しと同等の短い処理を行うことができます。$(document).ready()

$(function(){
    //document is ready
});
于 2012-05-17T10:22:39.680 に答える
0

jQuery での $(document).ready の呼び出しは、定義された順序で実行されます。詳細はこちら http://docs.jquery.com/Tutorials:Multiple_$(document).ready()

于 2012-05-17T10:21:39.077 に答える