Как проверить, готов ли документ (все js загруженные файлы, DOM готов) через jQuery? Есть ли какой-либо флаг?
При сталкивании с проблемами, если некоторые файлы не загружаются полностью, и событие генерируется пользователем. Я хочу проверить внутренний обработчик событий.
Я использую jQuery, asp.net
Я не думаю, что это не задокументировано, но если вы посмотрите код jQuery для $ (document) .ready
:
// If the DOM is already ready
if ( jQuery.isReady ) {
// Execute the function immediately
fn.call( document, jQuery );
} // ...
Таким образом, чтобы изменить способ, вы можете использовать $. IsReady
или jQuery.isReady
.
Лучше использовать в строке $ (document) .ready
. Например: [
function myClickHandler(event) {
// do stuff
$(document).ready(function() {
// Do this immediately if DOM is loaded, or once it's loaded otherwise.
}
}
] По сути, это использует функцию готовности в качестве защиты. Вместо оператора if вы используете функцию ready. Конечно, функция готовности имеет поведение, которое будет запускаться после загрузки DOM. Если ваше поведение просто хочет, чтобы что-то произошло, если он загружен, но никогда этого не делает, если DOM еще не загружен, то лучше использовать флаг, указанный выше, или установить свой собственный. Установка собственного:
$(document).ready(function() {
window.domIsReady = true;
}
if (window.domIsReady) {
// do stuff
}
Создание собственного, вероятно, лучше, поскольку jQuery.isReady
, похоже, не документирован, и поэтому, вероятно, не поддерживается и может быть изменен в любое время.
Простой вызов функции, чтобы узнать, загружена ли вообще база.
jQuery(document).ready(function(){
alert("howdy");
});
альтернатива, узнать, загружена ли она (лучше)
<script type="text/javascript">
if (typeof jQuery == 'undefined')
{
alert('not loaded');
}
</script>
ДЛЯ КОРОТЫШЕЙ: (typeof не нужен :)
<script type="text/javascript">
if(!this.$)
{
alert('not loaded');
}
</script>
Это вопрос с подвохом? :)
То, что вы ищете - document.ready
Пример:
$(document).ready(function() {
alert ("document is ready!");
});
Вы случайно не ищете родное событие window.onload
? Он запускается, когда все на странице (включая сценарии, изображения, таблицы стилей) загружено.
function doStuff() {
alert("The DOM and everything inside have loaded");
}
window.onload = doStuff;
См. Также: addLoadEvent .
Думал, что код document.ready запускался только при загрузке документа и всех файлов. У меня никогда не было с этим проблем.
Если бы у меня была проблема, я бы либо поместил переменную во все необходимые файлы, и проверил, складываются ли они, поместив весь код в один файл.
Простите, что не опубликовал окончательный ответ
У Jquery есть следующее:
$(document).ready(function(){
alert('document ready here')
});
Стало довольно распространенной практикой заворачивать любой jquery, который манипулирует DOM, в блок $(document).ready(), чтобы убедиться, что DOM весь там, прежде чем продолжить.
$(document).ready(function() {
// Handler for .ready() called.
});
http://api.jquery.com/ready/ - пример внизу страницы