我在为一些打开和关闭菜单设置变量时遇到问题。我需要有一个我可以查询的变量,因为我有其他点击功能,这将打开和关闭不同的菜单,所以我不能使用切换。
我不明白为什么以下代码不起作用。请有人建议,因为我无法理解它,我理解变量范围,但我认为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;
}});
提前致谢。
答案 0 :(得分:2)
由于var
关键字,您在函数中重新声明了新的局部变量。摆脱它。
此外,没有理由将布尔变量与布尔常量进行比较:
if (opentags) {
$('#tags').slideUp();
opentags = false;
}
else {
$('#tags').slideDown();
opentags = true;
}
另请注意,您不需要" nav"在选择器中; " ID"无论如何,这些值在页面上应该是唯一的。
当然,使用var
是非常重要的事情,所以不要认为它是一件坏事。只是在这种情况下你想要来访问在函数范围之外声明的变量。
答案 1 :(得分:0)
var opentags
创建一个新的局部变量,它只存在于该回调中
您想要设置现有的全局变量。