web-dev-qa-db-ja.com

TypeError jQuery offset()。topは未定義です

Firefoxデバッガーは、ユーザーが同時にスクロールしてクラスを更新するときにnavbarをページの上部に貼り付けることを目的としたjQuery関数のTypeErrorを表示しています。

機能は以下のとおりです。

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

結果のエラーはこれです。

タイムスタンプ:2014年1月31日10:01:04

エラー:TypeError:$(...).offset(...)は未定義です

同様の例についてSOを調べましたが、結果を修正に変換することはできません。どんな助けも大歓迎です。

20
K7Buoy

これは、$( "。navbar")が見つからないためです。オフセットを取得する前に、要素が存在するかどうかを確認してください。

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