jQuery点击功能里面的JS变量设置

时间:2012-03-14 16:16:12

标签: javascript jquery

我在为一些打开和关闭菜单设置变量时遇到问题。我需要有一个我可以查询的变量,因为我有其他点击功能,这将打开和关闭不同的菜单,所以我不能使用切换。

我不明白为什么以下代码不起作用。请有人建议,因为我无法理解它,我理解变量范围,但我认为jQuery执行click功能的方式令我感到困惑。或许这种功能可能会有更好的模式。

var opentags = false;

$('a#tags').click(function () {

    if (opentags == true) {
            $('nav#tags').slideUp(); 
            // and other stuff
            var opentags = false;
    } else {
            $('nav#tags').slideDown();
            // and other other stuff 
            var opentags = true;
    }});

提前致谢。

2 个答案:

答案 0 :(得分:2)

由于var关键字,您在函数中重新声明了新的局部变量。摆脱它。

此外,没有理由将布尔变量与布尔常量进行比较:

  if (opentags) {
    $('#tags').slideUp();
    opentags = false;
  }
  else {
    $('#tags').slideDown();
    opentags = true;
  }

另请注意,您不需要" nav"在选择器中; " ID"无论如何,这些值在页面上应该是唯一的。

当然,使用var是非常重要的事情,所以不要认为它是一件坏事。只是在这种情况下你想要来访问在函数范围之外声明的变量。

答案 1 :(得分:0)

var opentags创建一个新的局部变量,它只存在于该回调中 您想要设置现有的全局变量。