1

onReady コールを注文する必要があります。これらの質問をこちらこちらで調べましたが、何も見つかりませんでした。しかし、それはかなり前のことであり、おそらく今ではこれを回避する何かがあります. だから私はこのようなことをする必要があります:

$(function (){ console.log('second call'); })
$(function (){ console.log('first call'); })

なぜこれを行う必要があるのか​​ を明確にするために:

私がそれを必要とする理由は、これらの呼び出しがすべてのアプリケーションに広がっていることと、最も重要なことです: それらのいくつかはサードパーティからのものであり、私はそれらを制御することはできません. しかし、最初にメソッドを呼び出す必要があり、スクリプトをドキュメントの一番下に配置する必要があります。私が取り組んでいるコードはレガシー コードであり、多くを変更することはできません。可能であれば、または回避策があればさまよいます。

4

4 に答える 4

3

関数の実行順序を制御したい場合は、それらを同じコールバック関数に入れる必要があります。

$(function() {
  console.log('second call');
  console.log('first call');
});
于 2012-07-05T03:11:14.023 に答える
0

原則として、ready() 関数は配列 (readyList) に何かを追加し、追加された順序でそれらを実行します。こちらの記事のように、readyList配列を操作すると要件が解決する場合があります

于 2012-07-05T03:20:34.513 に答える
0

配列を使用して関数を格納し、それらを正しい順序で呼び出す onReady 呼び出しを 1 つ持つことができます。

var calls = [];

calls[2] = function() {
    console.log("third call");
};

calls[1] = function() {
    console.log("second call");
};

calls[0] = function() {
    console.log("first call");
};

$(function() {
    for (var index = 0; index < calls.length; index += 1) {
        calls[index]();
    }
});
于 2012-07-05T03:35:03.133 に答える