2

次のコードが機能します

$("#someid").ready(function(){});

これを使うとどれくらい良いですか?バックグラウンドで何が起こっていますか?

4

2 に答える 2

4

これが機能するのは、div ID を無視し、デフォルトでドキュメントになるからです。

.ready()DOM の読み込みが完了したとき、つまりページ上のすべての要素が読み込まれたときを通知するために使用されます。

要素の読み込みが完了したときに関数を実行したい場合は、次を使用する必要があります。

$("#someid").load(function() {
  // Do something here
});

それは...でのみ使用できます。

URL に関連付けられた要素: 画像、スクリプト、フレーム、iframe、および window オブジェクト。

それ以外の場合は、("#someid").readyドキュメント全体の読み込みが完了したときにのみ機能します。

http://api.jquery.com/load-event/を参照してください

于 2013-10-15T11:58:20.143 に答える
0

マニュアルには次のように書かれています。

この.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");
});
于 2013-10-15T12:06:15.703 に答える