window.onload против document.ready jQuery

У меня есть сайт с двумя колонками. Я хочу иметь одинаковую высоту на обоих с помощью jQuery.

Я пытаюсь получить высоту столбца логотипа. Я имел:

$(document).ready(function() {
    alert($('#logo').height());
});​

и это не сработало. Поэтому я изменил это на:

window.onload = function(){
    alert($('#logo').height());
}

И это работает. Что здесь происходит?

2 ответа

Решение

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

$ (документ).ready()

Событие готовности документа сработало, когда документ HTML загружен и DOM готов, даже если вся графика еще не загружена. Если вы хотите подключить ваши события для определенных элементов до загрузки окна, то $(document).ready - это правильное место.

Код:

$(document).ready(function() {
    // document is loaded and DOM is ready
    alert("document is ready");
});

$ (окна).load()

Событие загрузки окна происходит чуть позже, когда вся страница полностью загружена, включая все кадры, объекты и изображения. Поэтому функции, относящиеся к изображениям или другому содержимому страницы, должны быть помещены в событие загрузки для окна или самого тега содержимого.

Код:

$(window).load(function() {
    // page is fully loaded, including all frames, objects and images
    alert("window is loaded");
});

document ready запускается при загрузке DOM, поэтому информация, такая как высота, недоступна, если она явно не объявлена.

window onload ожидает полной загрузки ресурсов на странице, поэтому теперь доступна такая информация, как высота.

Другие вопросы по тегам