K7Buoy
K7Buoy

Reputation: 946

TypeError jQuery offset().top is undefined

The Firefox debugger is showing a TypeError for a jQuery function aimed at sticking a navbar to the to the top of the page when a user scrolls and updating the class at the same time.

The function is below.

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

The resulting error is this.

Timestamp: 31/01/2014 10:01:04

Error: TypeError: $(...).offset(...) is undefined

I have looked about on SO for a similar example but can not translate the outcomes into a fix. Any help would be greatly appreciated.

Upvotes: 26

Views: 78108

Answers (2)

Abdo Amghar
Abdo Amghar

Reputation: 21

it work for me like this

$('.custom-scrollbar').animate({
    scrollTop: $('a.sidebar-link.sidebar-title.active').offset.top - 200
}, 1000);

offset without ()

Upvotes: 2

user3709748
user3709748

Reputation: 554

It 's because your $(".navbar") cannot be found. Check if the element exist before getting offset.

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

Upvotes: 43

Related Questions