$(window).ready()
ドーム UI のサイズ変更と HTML 要素の配置を行うコードを使用していくつかのコードに出くわしました。なぜそれが使われているのだろうか?このように使用する利点はありますか?
以上のメリットはありますか$(document).ready()?
$(window).ready()
ドーム UI のサイズ変更と HTML 要素の配置を行うコードを使用していくつかのコードに出くわしました。なぜそれが使われているのだろうか?このように使用する利点はありますか?
以上のメリットはありますか$(document).ready()?
ready
イベントに対する利点はload
、距離リソース (主に画像) が読み込まれるのを待たずに、DOM の準備が整うとすぐに起動することです。通常、要素が存在することを確認してバインドできるようにしたいだけですが、距離リソースをロードする必要はありません。
ドキュメントから:
ほとんどの場合、スクリプトは DOM 階層が完全に構築されるとすぐに実行できます。
$(window).ready()
と$(document).ready()
同等です。
ソースコードから:
ready: function( fn ) {
// Add the callback
jQuery.ready.promise().done( fn );
return this;
},
引数が使用されていないことがわかります。必要に応じてチェーンできるように返されているだけです。あなたはこれを行うことができました:
$({}).ready(function(){
...
});
しかし、心配する必要はなく、次のショートカットを使用する必要があります。
$(function(){
// your code which needs the DOM here
});
.ready()
jQuery 1.9.0 のソース コードを見たところ、メソッドが適用されたオブジェクトを使用しているようには見えません。全体にdocument
ハードコーディングされています。したがって、すべての$(anything).ready(...)
呼び出しは同等です。
ソースコードをダウンロードして の定義を確認してくださいjquery.ready.promise
。ここで のほとんどの作業$(...).ready()
が行われます。
$(window).ready()
ドキュメントは、定義された意味を持たないことを明確にしています:
この
.ready()
メソッドは、現在のドキュメントに一致する jQuery オブジェクトでのみ呼び出すことができるため、セレクターは省略できます。
現在、オブジェクトは無視されています。上記により、正しく記述されたコードに影響を与えるべきではないため、将来的にこの動作を変更できます。