jQueryをレイトロードしたいのですが、$。ready()で実行されるインラインjavascriptが少量あります。jQueryがロードされていないため、これらの行はエラーをスローし、実行されません。$ .ready()を使用可能な関数にする方法はありますが、jQueryが読み込まれるまで実行を待ちますか?
ありがとう!
jQueryをレイトロードしたいのですが、$。ready()で実行されるインラインjavascriptが少量あります。jQueryがロードされていないため、これらの行はエラーをスローし、実行されません。$ .ready()を使用可能な関数にする方法はありますが、jQueryが読み込まれるまで実行を待ちますか?
ありがとう!
これを解決する一般的な方法の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
});
を使用する代わりに、.ready
などのjQuery以外の同等のものを使用することもできますがwindow.onload
、これらはと互換性がない傾向がある.ready
ため、ニーズに合っているかどうかはわかりません。
誰かがjQueryのready関数を抽出したので、単独で使用できるようです:http ://code.google.com/p/domready/
あなたがすべき:
example();
example() { }
(document).ready()