我的代码使用大小调整功能布尔值随宽度变化, 但是我的函数包含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()
我希望纠正我的代码,如果我没有任何错误,请告诉我如何解决它
答案 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