次のコードが機能します
$("#someid").ready(function(){});
これを使うとどれくらい良いですか?バックグラウンドで何が起こっていますか?
次のコードが機能します
$("#someid").ready(function(){});
これを使うとどれくらい良いですか?バックグラウンドで何が起こっていますか?
これが機能するのは、div ID を無視し、デフォルトでドキュメントになるからです。
.ready()
DOM の読み込みが完了したとき、つまりページ上のすべての要素が読み込まれたときを通知するために使用されます。
要素の読み込みが完了したときに関数を実行したい場合は、次を使用する必要があります。
$("#someid").load(function() {
// Do something here
});
それは...でのみ使用できます。
URL に関連付けられた要素: 画像、スクリプト、フレーム、iframe、および window オブジェクト。
それ以外の場合は、("#someid").ready
ドキュメント全体の読み込みが完了したときにのみ機能します。
http://api.jquery.com/load-event/を参照してください
マニュアルには次のように書かれています。
この
.ready()
メソッドは、現在のドキュメントに一致する jQuery オブジェクトでのみ呼び出すことができるため、セレクターは省略できます。
メソッドのソース コードを見ると、次のことがわかります。
jQuery.fn.ready = function( fn ) {
// Add the callback
jQuery.ready.promise().done( fn );
return this;
};
jQuery チェーンまたはセレクターを処理するコードはありません。これは、単に無視されていることを示唆しています。
そして簡単なテストは、セレクターが単純に無視されることを示しています:
$("selector does not match anything").ready(function(){
console.log("Event is triggered anyway");
});