猿问

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

我的代码使用 resize 函数布尔值随宽度变化,但我的函数包含 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()

我希望更正我的代码,如果我没有任何错误,请建议我如何解决


蛊毒传说
浏览 153回答 2
2回答

素胚勾勒不出你

=是赋值运算符。它会更改左侧内容的值。除非你真的知道你在做什么,否则它通常不是你想要的 if 语句。==和===是比较运算符。它们之间的区别是==自动将两个参数转换为相同类型,而===不会。但这并不重要,我的建议是始终使用===if 语句中的变量进行比较。此外,与 true ( x === true)相比完全没有意义,因为 if 语句已经这样做了;这是不必要的。(旁注:您可以这样做if (x === true === true === true),这与if (x).)你想要的代码是:function slideTotal() {&nbsp; if (slideSwitch) {&nbsp; &nbsp; slideDown();&nbsp; &nbsp; slideClear();&nbsp; }&nbsp;}

一只斗牛犬

好吧,开始:function slideTotal(){&nbsp; if(slideSwitch = true){&nbsp; &nbsp; slideDown()&nbsp; &nbsp; slideClear()&nbsp; }&nbsp;}更改:slideSwitch = true 到:slideSwitch == true
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答