我正在构建一个wordpress主题,我正在开发一个在滚动期间保持固定的侧边栏,当你到达评论时它会上升。这是我的jQuery代码的一部分:
jQuery(window).bind('scroll', function () {
var flag = '';
if (calcTop() === true && calcBottom() === false && flag !== 'false')
{
jQuery('#aside-sidebar').css({'position': 'fixed', "top": "59px"});
}
else if (calcTop() === false && calcBottom() === false && flag !== 'false')
{
jQuery('#aside-sidebar').css({'position': 'absolute', "top": ""});
}
else
{
flag = 'false';
jQuery('#aside-sidebar').css({'position': 'absolute', "top": sidebarPosition()+"px"});
console.log(flag);
}
});
我遇到的问题是flag
变量没有根据if语句的最后部分而改变。任何提示?
答案 0 :(得分:1)
在else部分,如果你将flag设置为'false',它肯定会被设置为你期望的。
在您的条件部分,我认为您可以添加一些重构,如果是,否则,如果您有两个类似的条件。
为什么要将标志设置为字符串变量,而不是在这里轻松使用布尔标志。
最后但并非最不重要的是,您可以在控制台上查看任何错误。如果发生任何错误,则意味着它没有进入setter部分 flag ='false';