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

javascript变量未设置-通过firebug检查,javascript,jquery,jquery-ui,variables,Javascript,Jquery,Jquery Ui,Variables,我是新来的 我的公司网站使用jquery的一段代码有问题。我正在尝试跟踪两个按钮上的点击,并设置一个变量/s,该变量可用于确定行动方案。基本上,它是一个滑动下拉列表,如果变量设置为true,则以一种方式设置动画,如果变量设置为false,则以另一种方式设置动画。我已将变量初始化为false,然后在单击过程中根据情况将其设置为true或false: var boollogin = false; var boolregister = false; $(document).ready(functio

我是新来的

我的公司网站使用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;
    });
});
我正在处理的页面位于。完整的代码目前在php文件中,因此您也可以在那里查看它。你应该可以通过点击页面右上角的两个链接(注册和登录)来了解我的意图。这两个链接应该可以重置变量boollogin或boolregister,但是在firebug中检查这两个变量会发现它们没有被重置,也没有改变。因此,页面最初的行为与预期一致,但经过一段时间和几次点击后,它变得非常古怪。表单验证和其他东西还没有完成,因为我正在尝试首先对动画进行排序

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

提前谢谢


Dan

你有没有尝试过这样做:

$('<a href="javascript:void(0);" id="register" onclick="toggleTheCorrectDiv(true)">Register</a>').appendTo('#support').css({'float':'right','margin-right':'10px'});
$('<a href="javascript:void(0);" id="login" onclick="toggleTheCorrectDiv(false)">Login</a>').appendTo('#support').css({'float':'right','margin-right':'10px'});

我认为,与其关闭下拉的div,然后在用户在login和register之间切换时再次打开它,不如在打开的div中显示正确的register或login表单

这段代码可能会对您有所帮助,但它实现了我上面建议的内容

编辑链接,以便查看代码:


欢迎使用堆栈溢出(SO)!!!我不知道你在用Firebug做什么,但这些变量肯定在变化。然而,这个页面并不太好用;如果你在动画结束前单击,它会变得混乱。我发誓我将这两个变量都设置为firebug中要观看的变量,并且在单击几下之后,两个变量都没有被重新设置。这看起来更像是巫毒编程,而不是一个合理的答案。为什么弄乱HTML和JS是正确的答案?这对我来说是新闻-使用onclick事件被认为是“巫毒”或“弄乱”HTML。这很简单。此外,我从未声称这是“正确的”答案,但我肯定认为,如果OP有JS问题,这是做同样事情的直接方法。正如在许多情况下一样,这将有不止一个“正确”答案。我可能会问你,当你可以做这样简单的事情时,为什么要编写带有多个bool值的复杂javascript?我是说,我们讨论的是一个触发函数的基本事件。哇!对不起,我不是有意要开始一场关于巫毒比例的辩论认真地说,虽然我不知道如何做到这一点,但有多个动画的div滑动前滑下与新的内容,这可能是一个开放的div,一个封闭的div与不同的内容考虑哪个按钮被按下,作为切换,我需要div上下滑动与按下同一个按钮。上面的答案似乎太简单了,要么答案就在我面前,要么就在你的右边。。。我不知道如何正确地应用它!:)这可能是一个更优雅的解决方案,但我正在尝试模仿我们以前生产的一些软件。我听说过在Jquery中使用Queue和Stop()来微调动画,但不确定在这种情况下如何应用它们,以及它是否适用。我使用了firebug,将boolregister和boollogin变量设置为值得关注的变量,我发誓它们没有改变。一开始从登录(打开时)切换到注册似乎很好,但之后一切都变得一团糟。在这种情况下,我建议您在设置变量时检查。您可能必须在onComplete处理程序中设置它们,以使它们更加准确。
function toggleTheCorrectDiv(toggleRegister){
    if (toggleRegister){
       //Show Register Content
    }else{
       //Show Login Content
    }
}