变量的计算结果总是false

Variable always evaluates to false

本文关键字:false 结果 计算 变量      更新时间:2023-09-26

我正在学习jQuery,我只是测试事件和条件是如何工作的。我还使用velocity。js来制作动画。下面是代码:

$(function() {
$( "#navBar" ).click(function() {
    var isOpen = false;
      if (isOpen == false){
       $( this ).velocity({ height: 300});
          isOpen = true;
          console.log(isOpen);
          return false;
      }
      else{
       $( this ).velocity({ height: 50});
          isOpen = false;
          console.log(isOpen);
      }
   });
});

我不知道为什么这不起作用。if条件得到执行,并记录到控制台中变量为true。但是在第二次点击之后,继续运行if条件并返回isOpen true。我不能执行else语句。

isOpen声明在click处理程序之外,因为将其置于处理程序内部将使其始终为false

var isOpen = false;
$( "#navBar" ).click(function() {
      if (isOpen == false){
       $( this ).velocity({ height: 300});
          isOpen = true;
          console.log(isOpen);
          return false;
      }
      else{
       $( this ).velocity({ height: 50});
          isOpen = false;
          console.log(isOpen);
      }
   });
});

因为每次isOpen = false;都是在click中声明的。所以请将其保留在click event之外,如下所示:

$(function() {
   var isOpen = false; //this here
   $( "#navBar" ).click(function() {
      if (isOpen == false){
          $( this ).velocity({ height: 300});
          isOpen = true;
          console.log(isOpen);
          return false;
      }
      else{
          $( this ).velocity({ height: 50});
          isOpen = false;
          console.log(isOpen);
      }
   });
});