javascript,如果状态函数不读取布尔值

时间:2019-06-02 16:41:00

标签: javascript jquery

我的代码使用大小调整功能布尔值随宽度变化, 但是我的函数包含if语句不读取布尔值, 我的代码有什么问题?

我曾经使用= ==,但是我不知道如何准确地使用它们

var footerMenu = ['#about', '#help']
var slideSwitch = false

function slideDown(){
  footerMenu.forEach(function(list){
      $(list+' p').click(function(){
        $(list+' ul').slideToggle(300)
      })
    })
}

function slideClear(){
  for( let i = 0; i < footerMenu.length; i++){ 
    $(footerMenu[i]+' p').click(function(){
      var choice = footerMenu[i]
      footerMenu.splice(i, 1);
      footerMenu.forEach(function(list){ 
      $(list+' ul').slideUp(300)
      })
      footerMenu.splice(i, 0, choice);
    })
  }
}

function slideTotal(){
  if(slideSwitch = true){
    slideDown()
    slideClear()
  } 
}

$(document).ready(function() {
  checkWidth();
});
$(window).resize(function(){
  checkWidth();
});

function checkWidth(){
  $vWidth = $(window).width();

  if($vWidth <576){
       console.log("Width: Less than 576");
       slideSwitch = true
  }else{
       console.log("Width: More than 576");
      slideSwitch = false
  } 
}

slideTotal()

我希望纠正我的代码,如果我没有任何错误,请告诉我如何解决它

2 个答案:

答案 0 :(得分:2)

=是分配运算符。它将更改左侧的值。除非您真的知道自己在做什么,否则通常在语句中不是

=====是比较运算符。它们之间的区别在于==自动将两个参数转换为相同类型,而===不会。但这并不重要,我的建议是总是使用===来比较if语句中的变量。

此外,与true(x === true)进行比较完全没有意义,因为if语句已经这样做了;没必要。

(旁注:您可以进行if (x === true === true === true),与if (x)相同。)

您想要的代码是:

function slideTotal() {
  if (slideSwitch) {
    slideDown();
    slideClear();
  } 
}

答案 1 :(得分:0)

好吧,开始:

function slideTotal(){
  if(slideSwitch = true){
    slideDown()
    slideClear()
  } 
}

更改:slideSwitch = true 到:slideSwitch == true