无法更改我的变量值(jQuery)

时间:2015-06-07 09:46:02

标签: javascript jquery

我正在构建一个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语句的最后部分而改变。任何提示?

1 个答案:

答案 0 :(得分:1)

在else部分,如果你将flag设置为'false',它肯定会被设置为你期望的。

在您的条件部分,我认为您可以添加一些重构,如果是,否则,如果您有两个类似的条件。

为什么要将标志设置为字符串变量,而不是在这里轻松使用布尔标志。

最后但并非最不重要的是,您可以在控制台上查看任何错误。如果发生任何错误,则意味着它没有进入setter部分 flag ='false';