26

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.

Community
  • 1
  • 1
K7Buoy
  • 936
  • 3
  • 13
  • 22

2 Answers2

42

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

if ($(".navbar").length) {...}
user3709748
  • 544
  • 6
  • 5
2

it work for me like this

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

offset without ()