jQuery не возвращает надлежащую высоту тела на загрузке документа - Их ошибка или моя?

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

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

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

$("body").height();

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

12
задан Kyle Hotchkiss 18 May 2010 в 00:11
поделиться

2 ответа

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

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

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

11
ответ дан 2 December 2019 в 05:53
поделиться

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

$(window).load(function() {
    var bodyHeight = $("body").height();
});
15
ответ дан 2 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: