はdocument.ready
、DOM が完全にロードされた後にコードを実行するために使用されます。これは、ページ上の要素にイベント ハンドラーをアタッチするために使用できます。
$(function(){
$('#somediv').click(function(){
});
})
<div id="somediv"> </div>
DOMContentLoaded
内部的には、jQuerywindow.onload
はフォールバックとして接続します。IE の場合、成功するまでビューポートを何度もスクロールしようとします。
いくつか質問があります。最初の質問は、イベント ハンドラーをそれ自体にバインドするときに、そのコードを?document
に配置する必要があるかどうかです。document.ready
私は常に以下のコードをラップせずに書いてきましたdocument.ready
$(document).keydown(function(e){
if (e.which == 39) {
alert( "right arrow pressed" );
return false;
}
});
ご覧のとおり、動作します。私の理解では、このコードはドキュメント内のどの要素にも接続していませんが、ドキュメント自体に接続しているため、document.ready
ハンドラーでラップする必要はありません。私がそれをラップしないもう1つの理由は、バニラのjavascriptで同じことをしていたからです。
document.onkeydown = function(){
var keyCode = event.keyCode || event.which;
if (keyCode == 39) {
alert( "right arrow pressed" );
return false;
}
}
人々が でラップする投稿を数多く見てきましたがdocument.ready
、このコードを でラップしないことの欠点はありますdocument.ready
か?
また、この質問は、DOM が構築されている間に何が起こるかについての私の明確さの欠如から生じていると思います。そのため、誰かが DOM の準備が整う直前の期間に何が起こるかを説明できれば. HTML が解析されて DOM ツリーに変換されると 、ドキュメントの準備が整います。
要約すると、ここに私の質問があります
- イベント ハンドラーを
document
それ自体にバインドする場合、そのコードをdocument.ready
. - でコードをラップしないことの欠点はあり
document.ready
ますか? document.ready
ドキュメントが構築されているとき、が起動 される直前に、どのようなイベント シーケンスが発生しますか?