3

jQueryをレイトロードしたいのですが、$。ready()で実行されるインラインjavascriptが少量あります。jQueryがロードされていないため、これらの行はエラーをスローし、実行されません。$ .ready()を使用可能な関数にする方法はありますが、jQueryが読み込まれるまで実行を待ちますか?

ありがとう!

4

3 に答える 3

4

これを解決する一般的な方法の1つのオプションは、インラインJavaScriptを関数に入れ、その関数をグローバルにアクセス可能な配列に追加することです。まだ呼び出さないでください。document.ready()これらは基本的に、いつ利用可能になるかをスケジュールしたい機能document.readyです。

document.ready()次に、jQueryをロードするときに、その配列内のすべての関数を循環してそれらを呼び出すハンドラーを設定します。

// declare global at the top of your web page
var readyFns = [];

// in your inline code, add a function to the readyFns array
readyFns.push(myInlineFn);

// when your jQuery code loads, do this:
$(document).ready(function() {
    for (var i = 0; i < readyFns.length; i++) {
        readyFns[i]();
    }
});

匿名関数を使用する場合は、次のような中間ステップを実行できます。

// in your inline code, add a function to the readyFns array
readyFns.push(function() {
   // put your code here
});
于 2012-12-05T17:08:47.980 に答える
1

を使用する代わりに、.readyなどのjQuery以外の同等のものを使用することもできますがwindow.onload、これらはと互換性がない傾向がある.readyため、ニーズに合っているかどうかはわかりません。

誰かがjQueryのready関数を抽出したので、単独で使用できるようです:http ://code.google.com/p/domready/

于 2012-12-05T17:10:06.267 に答える
1

あなたがすべき:

  1. readyを関数呼び出しに置き換えます。example();
  2. 関数を作成します。example() { }
  3. その関数を中に入れて(document).ready()
于 2012-12-05T17:10:48.983 に答える