JQueryについて質問があります$(document).ready
2つのJavaScriptファイルを含むHTMLページがあるとします。
_<script language="javascript" src="script1.js" ></script>
<script language="javascript" src="script2.js" ></script>
_
これらのスクリプトファイルの両方で、次のように$(document)
があるとします。
内部script1.js:
_$(document).ready(function(){
globalVar = 1;
})
_
内部script2.js:
_$(document).ready(function(){
globalVar = 2;
})
_
今私の質問は:
- これらの準備ができたイベント関数の両方が発生しますか?
- はいの場合、両方のドキュメントが同時に準備されるため、それらが起動される順序はどうなりますか?
- このアプローチはお勧めですかOR理想的には$(document).readyは1つだけにする必要がありますか?
- すべてのブラウザー(IE、FFなど)で実行順序は同じですか?
ありがとうございました。
- これらの準備ができたイベント関数の両方が発生しますか?
はい、どちらも解雇されます。
- 両方のドキュメントが同時に準備されるので、それらが起動される順序は何ですか?
それらが表示される方法(上から下)。これは、準備完了イベントが1回発生し、すべてのイベントリスナーが次々に通知されるためです。
- このアプローチはお勧めですかOR理想的には$(document).readyは1つだけにする必要がありますか?
そのようにしても大丈夫です。それらを同じブロックコードに含めることができれば、管理が容易になりますが、それだけです。 更新:言うのを忘れていたようですが、これを複数のファイルで実行すると、JavaScriptコードのサイズが大きくなります。
- すべてのブラウザー(IE、FFなど)で実行順序は同じですか?
はい、jQueryはブラウザー間で正規化を行うためです。
ここを参照してください: jQuery-複数の$(document).ready(function(){}); を使用するのは悪いことであり、ここ: Tutorials:Multiple $(document).ready()
readyList
オブジェクト でDeferred
を維持します。.js
ファイルをインクルードまたは削除して、独自のレディハンドラーを提供およびバインドすることができます)。現在の任意のブラウザーで、スクリプトが含まれる順に実行される両方のハンドラーと、2番目のスクリプト参照の後にglobalVar
が2
になることを期待できます。