Этот код должен быть в документе.
document.ready
используется для выполнения кода после полной загрузки DOM. Это можно использовать для прикрепления обработчиков событий к элементам на странице, например
$(function(){
$('#somediv').click(function(){
});
})
<div id="somediv"> </div>
Внутри jQuery подключается кDOMContentLoaded
а такжеwindow.onload
как запасной вариант.In IE's case сделана попытка прокручивать окно просмотра снова и снова, пока не будет успешно.
У меня есть несколько вопросов, мой первый из которых связан с привязкой обработчиков событий кdocument
само по себе, необходимо ли поместить этот код вdocument.ready
? Я всегда писал код ниже, не заключая его вdocument.ready
$(document).keydown(function(e){
if (e.which == 39) {
alert( "right arrow pressed" );
return false;
}
});
И, как вы можете видеть, этоработает, Насколько я понимаю, поскольку этот код не подключается к каким-либо элементам в документе, но сам документ, нет необходимости заключать его вdocument.ready
обработчик. Другая причина, по которой я не оборачиваюсь, заключается в том, что я делал то же самое в ванильном 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 будет готов. Для меня документready когда html был разобран и преобразован в дерево DOM, или есть что-то еще?
В заключение, вот мои вопросы
When binding event handlers to thedocument
itself, is it
necessary to put that code in a document.ready
.
Are there any downsides to not wrapping the code in the document.ready
?
What sequence of events take place when the document is being constructed, right before the document.ready
is fired ?