功能只能工作一次

时间:2015-02-23 19:18:38

标签: jquery

当我点击蓝色时,我的功能只能工作一次,如果我想让它再次变黑,它就不再有效了。

问题是什么? 有更简单的方法吗?

我知道它有效,但不是这样。我会把价值带到下一页,我认为这是最简单的方法。

$(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");
        }
    }
    })

1 个答案:

答案 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);
});