当我点击蓝色时,我的功能只能工作一次,如果我想让它再次变黑,它就不再有效了。
问题是什么? 有更简单的方法吗?
我知道它有效,但不是这样。我会把价值带到下一页,我认为这是最简单的方法。
$(document).ready(function(){
var x;
$("#dark").click(function(){
dark(x);
entscheid (x);
});
$("#blue").click(function(){
blue(x);
entscheid (x);
});
function blue(x){
var x=0;
}
function dark(x){
var x=1;
}
function entscheid(x){
if(x==1){
$("nav").attr("class","navigation-bar dark fixed-top");
$(".dropdown-menu").attr("class","dropdown-menu dark");
$(".heading").attr("class", "heading bg-dark fg-white");
$(".container-middleBlue, .container-middleDark ").attr("class","container-middleDark");
}
else{
$("nav").attr("class","navigation-bar blue fixed-top");
$(".dropdown-menu").attr("class","dropdown-menu blue");
$(".heading").attr("class", "heading bg-blue fg-white");
$(".container-middleDark, .container-middleBlue").attr("class","container-middleBlue");
}
}
})
答案 0 :(得分:3)
这些功能:
function blue(x){
var x=0;
}
function dark(x){
var x=1;
}
正在创建和修改局部变量,而不是更高范围的变量x
。因为var
前面有x
,所以它声明了一个仅对此函数本地的新变量。因此,当您致电entscheid (x);
时,他们不会更改您通过的更高范围的变量
我完全不明白你为什么要使用这个其他变量,因为你可以将所需的值传递给你的entscheid
函数而根本不使用全局。
$("#dark").click(function(){
entscheid(1);
});
$("#blue").click(function(){
entscheid(0);
});