2016-10-02 21 views
1

私はTypeErrorを取得しています:posは未定義のコードです。TypeError:posが未定義のエラー

$(document).ready(function() { 
    var s = $("#col-scroll"); 
    var pos = s.position();     
    $(window).scroll(function() { 
     var windowpos = $(window).scrollTop(); 

     if (windowpos+60 >= pos.top) { 
      s.addClass("col-fixed"); 
     } else { 
      s.removeClass("col-fixed"); 
     } 
    }); 
}); 

正常に動作するために使用されたコード。なぜそれがエラーを出すのか分かりません。誰かが私にこの問題が何であるか教えてもらえますか?本当に助けになった。

+3

'.position()'が 'undefined'を返すと' s'が空白/ '$("#col-scroll ")'が既存の要素と一致しないことを意味します。 ([jQueryの「存在する」関数はありますか?](0120-13903)。 –

+0

これは、 'pos'定義されていないので、あなたはこれを正しく扱いますか? 'position()'はオフセットされた親を基準として、一致した要素のセットの最初の要素の現在の座標を取得します。だから、これが見つからなければ、 'var s'は定義されていません。 – Franco

+0

@Francoありがとう、あなたの正しい。私の部門は削除されました。私はそれを受け入れることができるように答えとして追加してください。再度ありがとう – Jordyn

答えて

2

posが未定義であることを伝えていますので、これを正しく扱っていますか? position()は、offsetの親を基準として、一致する要素のセット内の最初の要素の現在の座標を取得します。だから、これが見つからなければ、varは未定義です。