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();
});