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

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

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

Я получаю по-настоящему крутой номер для роста. Я тогда бегу

$("body").height();

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

Ответы [ 2 ]

15 голосов
/ 18 мая 2010

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

$(window).load(function() {
    var bodyHeight = $("body").height();
});
11 голосов
/ 18 мая 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...