2013-06-19 78 views
0

我有一个函数即时尝试写入,使我的侧边栏粘滞。jQuery ifElse语句没有运行“其他”命令

我有以下几点,在设置我的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。这是一个if/else if没有默认else条件。我想你会想覆盖的情况下dist通过使用普通的旧if/else等于50

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

有没有办法,这些条件一个也不会执行(没有语法错误)。您可以使用alertconsole.log来确定脚本的哪些部分正在执行。

听起来像是问题在别的地方。

+0

感谢@sgroves,当我将该值记录到控制台356时,我的距离保持不变。 – Liam

+0

这是正确的;计算完成后,您不会更改'dist'。这个问题似乎在其他地方(也许'顶部:“”'?这看起来不正确) – sgroves