javascript 变量未设置 - 通过 Firebug 检查

标签 javascript jquery jquery-ui variables

我是 stackoverflow 的新手!

我在使用 jquery 为我公司的网站编写一段代码时遇到问题。我正在尝试跟踪两个按钮上的点击并设置一个变量/s,然后可用于确定操作过程。基本上它是一个滑动下拉菜单,如果变量设置为 true,则以一种方式进行动画处理;如果变量设置为 false,则以另一种方式进行动画处理。我已经将变量初始化为 false,然后在点击过程中根据情况将它们设置为 true 或 false:

var boollogin = false;
var boolregister = false;

$(document).ready(function(){
   $('#slidedownlogin').hide();
   $('#details_add_area').hide();
   $('#emailconfirmation').hide();
   $('#register').toggle(function(){
      if(boollogin == false){
         $('#login_area').hide();
         $('#register_area').show();
         $('#details_add_area').hide();
         $('#slidedownlogin').animate({'height':'235px'},1500, 'easeOutExpo');
      }else{
         $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo',function(){
            $('#login_area').hide();
            $('#details_add_area').hide();
            $('#register_area').show();
            $('#slidedownlogin').animate({'height':'235px'},1500, 'easeOutExpo');
          });
      }
      boolregister = true;
   } , function(){
     $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo', function(){
            $('#slidedownlogin').children().hide();
       });
       boolregister = false;
       boollogin = false;
    });

    $('#login').toggle(function(){
       if(boolregister == false){
          $('#register_area').hide();
          $('#details_add_area').hide();
          $('#login_area').show();
          $('#slidedownlogin').animate({'height':'220px'},1500, 'easeOutExpo');
       }else{  
          $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo',function(){
             $('#register_area').hide();
             $('#details_add_area').hide();
             $('#login_area').show();
             $('#slidedownlogin').animate({'height':'220px'},1500, 'easeOutExpo');
           });
       }
       boollogin = true;
    } , function(){
         $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo', function(){
            $('#slidedownlogin').children().hide();
         });
         boollogin = false;
         boolregister= false;
    });
});

我正在处理的页面位于 http://www.premiersoftware.co.uk/index94.php .完整代码目前在 php 文件中,因此您也可以在那里查看。您应该能够通过单击页面右上角的两个链接(注册和登录)了解我正在尝试做什么。这些应该重置变量 boollogin 或 boolregister,但检查这两个变量在 Firebug 中显示它们没有被重置并且不会改变。结果,该页面最初按预期运行,但过了一段时间并点击了几下后,它变得非常古怪。表单验证和其他内容尚未完成,因为我正在尝试首先对动画进行排序。

我希望这里有人能够阐明为什么变量没有被重置,并建议我如何修复代码。如果有其他方法可以创建相同类型的功能,我也乐于接受建议。

提前致谢

最佳答案

我认为与其关闭下拉的 div 然后在用户在登录和注册之间切换时再次打开它,不如在打开的 div 中显示正确的注册或登录表单可能更直观。

无论如何,这段代码可能对您有所帮助,但它实现了我上面的建议。

http://jsbin.com/etezo5

编辑链接以便您可以看到代码:

http://jsbin.com/etezo5/edit

关于javascript 变量未设置 - 通过 Firebug 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4071616/

相关文章:

javascript - AJAX formdata 附近的表单验证

jquery - 奇怪的白线

jQuery UI Sortable - 禁止传输到子元素

c# - MVC - 用于显示事件的 JQuery Datepicker

javascript - 如果我希望 box2 在 mouseon 上将颜色更改为红色,这样使用 setAttribute 是否正确?

javascript - 如何在新标签页中打开链接?使用 JavaScript 或 jQuery。没有阻止弹出窗口的浏览器警报

javascript - Internet Explorer 9 及以下版本,在主体上使用 rtl 方向时将滚动条设置为右侧

javascript - AngularJs 通过调用 REST 端点触发文件下载

php - Yii 和 Knockout 一起?

javascript - cURL 通过 AJAX 返回完整的 HTML - 如何向用户显示?