1

私は今本当に混乱しjQuery(document).ready(function(){ ... })ています。ページが終了してすべてのものをロードするときにトリガーされたと思いました。

それはそうではありませんが、私はちょうど経験していました:私のページに大きな写真をアップロードし、私の準備ができた機能にアラートを追加してください。バックグラウンドの画像のダウンロードが完了する前にアラートが飛び散っているようです...エージェントユーザーとhttp Webサーバー間の通信がダウンして準備完了関数を呼び出すのを待つ方法ですか? つまり、すべての要素が出力されるまで (そして div を解放するまで)、訪問者を大きな黒い div と「読み込み中」のテキストで待機させたいということです。

4

6 に答える 6

4

readyイベントは、すべての DOM 要素が読み込まれたときに発生しますが、それらの要素によって参照される画像の読み込みが完了する前ではありません。代わりに、画像が読み込まれるまで待機するloadイベントを使用することをお勧めします。ドキュメントの注意事項に注意してください。

load イベントは、要素とすべてのサブ要素が完全に読み込まれると、要素に送信されます。このイベントは、URL に関連付けられた任意の要素 (画像、スクリプト、フレーム、iframe、およびウィンドウ オブジェクト) に送信できます。

元:

$(window).load( function() { ... do stuff ... } );
于 2011-06-15T12:12:32.383 に答える
1

私の理解では、dom がロードされたときです。これにはすべてのスクリプト ファイルが含まれ、css ファイルを想定します。ただし、画像は含まれません。window.onload = function(){} を使用する方が良い選択になるのではないかと思います。

window.onload vs $(document).ready()

于 2011-06-15T12:11:16.953 に答える
1

window.onloadページ上のすべてがロードされたときに呼び出されます。つまり、DOM、スクリプト、CSS、および画像です。

document.readyDOM の構築が完了したときに呼び出されます。これは、DOM を操作/アクセスできる段階にあるためです。したがって、この場合、imghtml は読み込まれますが、画像リソースは読み込まれません。

loadその画像のイベントを行うことができます:

$("#image").load(function(){

    $("#div_you_want_to_hide").hide();  

});

または、ウィンドウが完全に読み込まれるまで待ちます。

$(window).load(function(){

    $("#div_you_want_to_hide").hide();  

});
于 2011-06-15T12:18:59.970 に答える
0

注釈付きのソースでわかるように、jQuery の準備は、ほとんどのブラウザーのDOMContentLoadedイベントのリスナーを追加するだけであり、古い IE の場合は onreadystatechange と onload に追加されます。

MDN ドキュメントから、「スタイルシート、画像、およびサブフレームの読み込みが完了するのを待たずに、ドキュメントが完全に読み込まれて解析されると、DOMContentLoaded イベントが発生します」

ページ全体を待機するには、ロードリスナーまたはそれjQuery(window).load(...)をラップする を使用します。

于 2014-03-28T06:46:17.477 に答える
0

すべてのリソースがロードされたときではなく、DOM の準備ができたときだけです。画像が読み込まれたことを確認する方法については、こちらをご覧ください。

http://www.stoimen.com/blog/2009/08/05/jquery-check-whether-image-is-loaded/

于 2011-06-15T12:12:34.497 に答える
0

readyすべての DOM が完全に構築された後にトリガーされるイベント。画像が読み込まれるまで待ちたい場合は、loadイベントを使用できます

于 2011-06-15T12:13:17.477 に答える