2013-06-19 4 views
0

내 사이드 ​​바를 끈적 거리기 위해 글쓰기를 시도하는 함수가 있습니다.jQuery ifElse 문에서 'else'명령을 실행하지 않습니다.

내 div를 위치에 맞게 설정하면 다음과 같이 작동합니다. 고정 된 상태로 페이지를 위로 스크롤하면 내 div 클래스가 position : relative로 변경되지 않습니다.

누구나 내 구문에서 명백한 결함을 발견 할 수 있습니까?

$(window).scroll(function() { 
var scrollTop = $(window).scrollTop(), 
    divOffset = $('#sidebar').offset().top, 
    dist = (divOffset - scrollTop); 

if (dist > 50) { 
    $('#sidebar').css({position:"relative",top:""}); 
} else if (dist < 50) { 
    $('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"}); 
} 
}); 
+0

'dist' *가 * 50 인 경우 해당 사례에 해당하지 않습니다 (문제인지, 단지 관찰인지는 알 수 없음). 그것이 당신의 의도였습니까? – eldarerathis

+0

감사합니다. @eldarerathis> 나는 단지 디버깅하려했기 때문에 내 구문이 지저분한 atm 이니까 – Liam

+0

일부 마크 업하시기 바랍니다. –

답변

1

이것은 if/else이 아닙니다. 기본값이 else이 아니며 if/else if입니다. 나는 dist는 평범한 구식 if/else를 사용하여 50 동일 위치를 경우를 포함 할 수 있습니다 상상 :

if (dist > 50) { 
    $('#sidebar').css({position:"relative",top:""}); 
} else { 
    $('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"}); 
} 

은 (어떤 구문 오류가없는) 이러한 조건 중 하나가 실행되지 않습니다 방법은 없습니다. alert 또는 console.log을 사용하여 스크립트의 어떤 부분이 실행되고 있는지 확인할 수 있습니다.

문제가 다른 곳에서 발생하는 것 같습니다.

+0

@sgroves에게 감사 드리며 콘솔에 값을 기록 할 때 나의 거리가 변하지 않습니다. – Liam

+0

맞습니다; 당신은 그것을 계산 한 후에'dist'를 바꾸지 않을 겁니다. 문제는 어딘가에있는 것처럼 보입니다 (어쩌면'상 :''''나에게 맞지 않는 것) – sgroves

관련 문제