不能改变我的变量值(jQuery)

can't change my variable value (jQuery)

本文关键字:jQuery 变量值 能改变 我的 不能      更新时间:2023-09-26

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

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

在你的条件部分,我认为你可以添加一些重构,如在if和else如果部分你有两个类似的条件。

为什么你要把flag设置为一个字符串变量,而不是你可以很容易地在这里使用布尔标志

最后但并非最不重要的是,您可以查看控制台的任何错误。如果出现任何错误,这意味着它没有到达setter部分flag = 'false';