我正在开发一款游戏,由于某种原因,这些点击功能并没有永久地将顶部值更改为true,我使用控制台日志来测试它,而底部日志总是显示为false。我知道这可能很简单,但任何人都可以告诉我吗?
var twoThree = false;
var fourFive = false;
var sevenEight = false;
// button click functions
$('#2_3').click(function(){
twoThree = true;
$('#start').hide();
$('#game').fadeIn('slow');
});
$('#4_5').click(function(){
var fourFive = true;
$('#start').hide();
$('#game').fadeIn('slow');
});
$('#7_8').click(function(){
var sevenEight = true;
$('#start').hide();
$('#game').fadeIn('slow');
});
console.log(twoThree);
答案 0 :(得分:3)
在函数内部使用var
会在该范围内创建一个新变量,因此外部范围中的值不会更改。
答案 1 :(得分:0)
问题是您使用关键字var分配变量。这是在函数范围内声明一个新变量并将其设置为true。 在函数的clausure上设置变量的方法必须通过窗口变量o只使用变量的名称。
这两个电话都有效。
window.fourFive = true;
fourFive = true;
这不是。
var fourFive = true; // Is a local variable of the function