2010-08-23 4 views
3

У меня есть JavaScript, который генерирует HTML-блоки. Этот скрипт иногда называется где-то во время выполнения, а иногда и до загрузки документа. Я хочу, чтобы скрипт мог определить, готов ли документ. Если это так, сгенерируйте HTML, иначе добавьте функцию document.ready(). Каков наилучший способ jQuery узнать, загружен ли документ?Откуда вы знаете, если документ готов

+2

Было уже много предложений для этого, но использование '$ (document) .ready()' действительно именно то, что вы хотите. За кулисами, когда эта функция вызывается, jQuery проверяет, готова ли DOM. Если это так, он просто выполняет содержащуюся функцию. Если это не так, оно добавляет готовое событие. –

ответ

1

Безопасно всегда обертывать код генерации HTML в $ (document) .ready(). Если документ уже готов, новый зарегистрированный обратный вызов $ (document) .ready() будет выполняться немедленно.

4

Используйте load событие:

$(window).load(function(){ 
    // your code... 
}); 

С load события, DOM, изображения, рамки и любые другие внешние ресурсы загружаются в документ.

+0

Вам даже этого не нужно. Вы можете просто сделать '$ (function() {...});' – casablanca

+0

'$ (document) .load()' не работает. Проверьте это: http://jsfiddle.net/kjZrn/ Вам понадобится '$ (window) .load()' или '$ (document) .ready()' (или эквивалентный ярлык). – user113716

7
$(document).ready(
    function() { 
     //code to execute once the page is loaded 
    } 
); 
+0

+1 Это хорошее решение, так как не похоже, что OP беспокоится о полной загрузке изображений. – user113716

2

Вы можете использовать готовое событие для запуска вещи после того, как DOM загружен

$(document).ready(function() { 
    // your function 
}); 

или событие нагрузки ждать, пока не будет загружен абсолютно все

$(document).load(function() { 
    // your function 
}); 

Если вы не знаете, что вам нужно использовать событие загрузки, я бы использовал готовый (который я b elieve - событие DOMContentLoaded).

0
$(function() { 
    // document has loaded at this point 
}); 
Смежные вопросы