2014-01-31 8 views
10

Firefox 디버거는 사용자가 클래스를 동시에 스크롤하고 업데이트 할 때 페이지 상단으로 탐색 막대를 고정시키기위한 jQuery 함수의 TypeError를 보여줍니다.TypeError jQuery offset(). 위쪽이 정의되지 않았습니다.

기능은 다음과 같습니다.

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

결과 오류입니다.

Timestamp: 31/01/2014 10:01:04

Error: TypeError: $(...).offset(...) is undefined

비슷한 예를 찾아 보았지만 그 결과를 수정하지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

오프셋이 표시되는 요소입니까? – MarcoL

+1

관련 HTML 마크 업은 어디에 있습니까? – Sparky

답변

21

$ (". navbar")를 찾을 수 없기 때문입니다. 오프셋되기 전에 요소가 존재하는지 확인하십시오.

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

또는 객체가 표시되지 않는 경우 undefined로 반환됩니다. –

+0

대신 ID를 사용해보십시오. – Josh

관련 문제