jQuery / Javascript范围,可能是变量范围冲突

时间:2011-10-19 07:23:40

标签: javascript jquery variables scope

我正在尝试为JS中的网站编写菜单栏 - 我遇到的问题是我使用变量作为'哪个类别展开'开关,它似乎没有注册。 Firebug似乎告诉我它没有被定义,或者保持为零。

var navOpen = 0;

$(function() {

///////////bunch of other functions here

//When designWork is clicked
          $(".designwork").click(function(){  

              switch(navOpen)
              {
                case 0:
                    $(".navsub:hidden",this).slideDown("slow");
                    navOpen = 1; break;
                case 1:
                    break;
                case 2:
                    $("div.artProjects .navsub").slideUp("fast");
                    $(".navsub:hidden",this).slideDown("slow");
                    navOpen = 1; break;
                default:
                    break;
              }
              });

//When artProjects is clicked
          $(".artprojects").click(function(){

              switch(navOpen)
              {
                case 0:
                    $(".navsub:hidden",this).slideDown("slow");
                    navOpen = 2; break;
                case 1:
                    $("div.designWork .navsub").slideUp("fast");
                    $(".navsub:hidden",this).slideDown("slow");
                    navOpen = 2; break;
                case 2:
                    break;
                default:
                    break;
              }
              });    

       }); 

由于一个可能显而易见的原因,但我没有看到它,两个菜单按照应该的方式打开时打开,但它们没有关闭另一个菜单...帮我在这里,我错过了什么?

2 个答案:

答案 0 :(得分:0)

嗯,我认为这与以下事实有关:在两种情况下,你都引用".navsub:hidden"而没有准确指出你真正想要的navsub。您可能希望在其前面添加div.designWorkdiv.artProjects,以指定应该滑入哪个菜单。

答案 1 :(得分:0)

$("div.designWork .navsub")应为$("div.designwork .navsub")

$("div.artProjects .navsub")应为$("div.artProjects .navsub")

首都......