TypeError jQuery offset(). Top is undefined

Отладчик Firefox показывает TypeError для функции jQuery, нацеленной на прикрепление навигационной панели к верхней части страницы, когда пользователь одновременно прокручивает и обновляет класс.

Функция ниже.

$(window).scroll(function() {
    if ($(".navbar").offset().top>30) {
        $(".navbar-fixed-top").addClass("sticky");
    }
    else {
        $(".navbar-fixed-top").removeClass("sticky");
    }
});

В результате возникает ошибка.

Временная метка: 31/01/2014 10:01:04

Ошибка: TypeError: $(...).offset(...) есть undefined

Я посмотрел на SO для аналогичного примера, но не могу перевести результаты в исправление. Любая помощь будет принята с благодарностью.

Ответ 1

Это потому, что ваш $( ". navbar" ) не найден. Проверьте, существует ли элемент до смещения.

if ($(".navbar").length) {...}