Javascript jQuery ifElse语句未运行';其他';命令

Javascript jQuery ifElse语句未运行';其他';命令,javascript,jquery,Javascript,Jquery,我有一个函数,我试图写,使我的边栏粘性 我有以下方法,可以很好地将div设置为position:fixed,只有当我向上滚动页面时,我的div类才不会更改为position:relative 有人能发现我的语法中明显的缺陷吗 $(window).scroll(function() { var scrollTop = $(window).scrollTop(), divOffset = $('#sidebar').offset().top, dist = (divOffset -

我有一个函数,我试图写,使我的边栏粘性

我有以下方法,可以很好地将div设置为position:fixed,只有当我向上滚动页面时,我的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"});
}
});
$(窗口)。滚动(函数(){
var scrollTop=$(窗口).scrollTop(),
divOffset=$(“#边栏”).offset().top,
dist=(divOffset-scrollTop);
如果(距离>50){
$('#侧边栏').css({位置:“相对”,顶部:});
}否则,如果(距离<50){
css({位置:“固定”,顶部:“0px”,“左边距”:“730px”});
}
});

这不是一个
if/else
。这是一个
if/else if
条件,没有默认的
else
条件。我想你会想用一个普通的
if/else
来覆盖
dist
等于
50
的情况:

if (dist > 50) {
    $('#sidebar').css({position:"relative",top:""});
} else {
    $('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"});
}
这些条件中的任何一个都不会执行(没有语法错误)。您可以使用
alert
console.log
确定正在执行脚本的哪些部分


听起来问题出在别的地方。

如果
dist
等于50,那么它就不会属于这两种情况中的任何一种(不知道这是否是问题;只是一个观察)。这是你的意图吗?谢谢@eldarerat这我确实有>=我只是试着调试它,所以我的语法很混乱。请使用
console.log()
查找“dist”的值。当我将值记录到console时,我的距离保持不变,356。谢谢@sgroves,当我将值记录到控制台356时,我的距离保持不变。这是正确的;计算后,您不会更改距离。问题似乎出在其他地方(可能是
top:
?我觉得不太对劲)