【问题标题】:TypeError jQuery offset().top is undefinedTypeError jQuery offset().top 未定义
【发布时间】:2014-02-23 23:59:24
【问题描述】:

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 上查看了类似的示例,但无法将结果转化为修复。任何帮助将不胜感激。

【问题讨论】:

  • 是您要显示偏移量的元素吗?
  • 相关的 HTML 标记在哪里?

标签: jquery css offset typeerror


【解决方案1】:

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

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

【讨论】:

  • 或者如果对象不可见也返回 undefined
  • 尝试使用 ID。
【解决方案2】:

这样对我有用

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

不带 () 的偏移量

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2014-10-12
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多