JQuery не возвращает правильный рост тела при загрузке документа - их ошибка или моя?

Когда я использую

$(document).ready(function() {
 var bodyHeight = $("body").height();
 console.log(bodyHeight);
});

Я получаю действительно большой номер для роста. Затем я запустил

$("body").height();

в консоли и получить нужную высоту. Что-то кажется подозрительным в отношении $(document).load делает это... Да, мой CSS работает отлично и все, так это моя ошибка, хромы или jQuery?

Ответ 1

Вы хотите посмотреть на функцию $(window).load(), а не на $(document).ready().

Событие $(document).ready() выполняется, когда HTML DOM загружен и готов, даже если все графики еще не загружены. Событие $(window).load() выполняется позже, когда полная страница полностью загружена, включая все кадры, объекты и изображения.

Вот отличная ссылка, описывающая разницу. http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/

Ответ 2

Событие document.ready запускается после загрузки DOM, но до того, как страница полностью отобразится. Если вы хотите получить правильную высоту, вы должны попробовать событие window.load, которое запускается после того, как все изображения и объекты были загружены, и страница была отображена:

$(window).load(function() {
    var bodyHeight = $("body").height();
});