2011-01-03 18 views
151

jQueryの$(window).load(function() {})$(document).ready(function() {})の違いは何ですか?

答えて

189
  • document.readyはjQueryのイベントであるDOMの準備ができたとき、それは例えば、実行されますすべての要素がありますが、必ずしもすべてではありません。の内容です。
  • window.onloadイメージなどがロードされているときに後で(または最悪の場合と同時に失敗する場合)、イメージディメンションを使用している場合は、この代わりに使用することがよくあります。
+30

'$(document).ready(function(){}) 'の省略形は' $(function(){})'であり、window.loadとのもう一つの重要な違いは、最初のDOMreadyの後であっても –

+0

'onload'は' load'と同じであると推測していますか? – dbliss

+2

@dblissはいonloadは '$(window).on( 'load')'の略語だと思います。どちらも** load **イベントを参照しています。 –

2

jquery prospectiveから - ウィンドウとドキュメントにload/onloadイベントを追加するだけです。 はこれをチェックしてください:

window.onload vs document.onload

0

DOM Level 2 Eventsによると、ロードイベントはドキュメント上で発生するはずです。 はウィンドウに表示されません。ただし、すべてのブラウザでwindowにロードされており、後方互換性は です。

8

違いは以下のとおりです。

$(document).ready(function() {は、DOMがロードされたときに発生するjQueryのイベントなので、文書構造の準備ができたとき、それが解雇です。

$(window).load()イベントは、コンテンツ全体が読み込まれた後に発生します。

49
$(document).ready(function() { 
// executes when HTML-Document is loaded and DOM is ready 
alert("document is ready"); 
}); 


$(window).load(function() { 
// executes when complete page is fully loaded, including all frames, objects and images 
alert("window is loaded"); 
}); 
6
<html> 
<head> 
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script> 
    $(document).ready(function() { 
     alert("document loaded"); 
    }); 

    $(window).load(function() { 
     alert("window loaded"); 
    }); 
    </script> 
</head> 
<body> 
    <iframe src="http://stackoverflow.com"></iframe> 
</body> 
</html> 

全てのiframeのコンテンツを

$(document).ready
5

ロードされた後window.loadがトリガされるすべての要素は、必ずしも全てのコンテンツではないDOMに存在するが、ときに起こります。

$(document).ready(function() { 
    alert("document is ready"); 
}); 

window.onloadまたは$(window).load()すべてのコンテンツリソース(画像など)がロードされた後に発生します。

$(window).load(function() { 
    alert("window is loaded"); 
}); 
0

注目すべきは、この関数は1.8で非推奨、とjQueryでここに3.0

詳細情報削除されました:私は$(ウィンドウ).LOADイベントが3.xのをjqueryのためにサポートされていないと思うObject doesn't support property or method 'indexOf'

0

を..

+0

[documentation](https://api.jquery.com/load-event/)に従って、$(window).loadイベントがJQuery 3.0で削除されました – Wndrr

0

document.ready(jQuery) document.readyは、HTMLドキュメントがロードされた直後に実行され、DOMが準備完了です。

DOM:Document Object Model(DOM)は、HTML、XHTML、およびXMLドキュメントのオブジェクトを表現し、対話するための、クロスプラットフォームおよび言語に依存しない規約です。(ビルトインのJavaScript)

$(document).ready(function() 
{ 
    // executes when HTML-Document is loaded and DOM is ready 
    alert("(document).ready was called - document is ready!"); 
}); 

window.load window.loadしかし、この はインナーフレーム、画像などを含ん * window.loadがあり、完全にロードするページを待ちます組み込みのJavaScriptメソッドでは、古いブラウザ(IE6、IE8、古いFF、Operaバージョン)にいくつかの癖があることが知られていますが、一般的にそれらのすべてで動作します。

window.loadは次のように体のonloadイベントで使用することができます(それは後で混乱のための源であると私は強く、あなたがHTMLでこのようなコードを混合を避けることをお勧め):

$(window).load(function() 
{ 
    // executes when complete page is fully loaded, including all frames, objects and images 
    alert("(window).load was called - window is loaded!"); 
}); 
関連する問題