TypeError jQuery offset()。top未定义

时间:2014-01-31 10:20:03

标签: jquery css offset typeerror

Firefox调试器为jQuery函数显示一个TypeError,当用户同时滚动并更新类时,该函数旨在将导航栏固定到页面顶部。

该功能如下。

$(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(...)未定义

我已经在SO上查找了类似的示例,但无法将结果转换为修复。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:32)

这是因为无法找到你的$(" .navbar")。在获得偏移之前检查元素是否存在。

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

答案 1 :(得分:0)

它像这样对我有用

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

不带 () 的偏移