日期:2014-05-16  浏览次数:20382 次

js有木有类似功能的全局变量?
如果我有两个按钮loginBTN和registerBTN,按钮点击次序的不同对应的在此页面的显示效果不同,如何记录当前的效果而动态地做出反应呢?
这是我的js代码,想借用c里面的全局变量那种方法来存储状态:
<script type = "text/javascript">
var loginStatus = 0;
var registerStatus = 0;
$(document).ready(function(){
alert("sadf");
  $(".Panel").hide();
$("#loginPanel").hide();
$("#registerPanel").hide();
});
function loginClick(){
if(loginStatus == 0 || registerStatus == 0){
$(".Panel").slideDown(200);
$("#loginPanel").slideDown(200);
loginStatus = 1;
return;
}
if(loginStatus == 0 || registerStatus == 1){
$("#registerPanel").hide();
$("#loginPanel").slideDown(200);
loginStauts = 1;
registerStatus = 0;
return;
}
if(loginStatus == 1 || registerStatus == 0){
$("#loginPanel").slideUp(200);
$(".Panel").slideUp(200);
return;
}
}

这是对应的界面的:
<div id="chooseMethod">
<button id="overviewBTN">浏览</button>
<button id="loginBTN" onclick = "loginClick()">登陆</button>
<button id="registerBTN" onclick = "registerClick()">注册</button>
</div>
<div class="Panel">
<div class = "controls-Panel" id="loginPanel">
<input type="text" class="loginPanel-controls" id="Username">
<input type="text" class="loginPanel-controls" id="Passwd">
<button class="PanelBTN" id="loginPanelBTN">登陆</button>
<div id = "remember">
<input type="checkbox" class="loginPanelCheck" id="loginPanelRem" name = "loginPanelRem">
<label for = "loginPanelRem">记住密码</label>
</div>
<a href="" font-color = "#000">忘记密码?</a>
</div>
<div id = "registerPanel">
<input type="text" class="registerPanel-controls" id="rUsername" placeholder = "用户名">
<input type="text" class="registerPanel-controls" id="rEmail" placeholder = "常用邮箱">
<input type="text" class="registerPanel-controls" id="rPasswd" placeholder = "设置密码">
<button class="PanelBTN" id="registerPanelBTN">注册</button>
</div>
</div>

不知道大神能不能改一下,或者告诉我另一种方法?谢谢了
------解决方案--------------------
var loginStatus = 0;
你定义这个就是全局变量。

js中如果定义变量的时候不加var 修饰,这个变量就是全局的 ,无论声明在哪,整个页面里的JS都能调用。
------解决方案--------------------
 if(loginStatus == 0 
------解决方案--------------------
 registerStatus == 0){                             永远是true
 loginStatus = 1;     
------解决方案--------------------
基本想法就是把状态值存在html上。
把你那几个button都用一个html元素包起来,把两个state作为html属性存在那个元素上。然后直接改那个属性就行了。

<div class="button-group" data-login-state="0" data-register-state="0">
  <button&nbs