function winners() {
updating = true;
if (mm == "Best of 3") {
var wygrany = (s1 == "2")? 'left' : 'right';
return true;
}
if (mm == "Best of 5") {
var wygrany = (s1 == "3")? 'left' : 'right';
return true;
}
if (mm == "Best of 7") {
var wygrany = (s1 == "4")? 'left' : 'right';
return true;
}
return false; }
这是应该决定我的 var wygrany = 'left' 还是 'right' 的代码。
function runUpdate() {
if (timeOld == timeNew) return;
if (winners == true) {
updating = true;
setTimeout(function(){
$('.team.center .name').set('$', '-flipInY +fadeOut');
if(wygrany == "left") {
$('.team.right').set('$', '+animated +fadeOutDown');
$('.team.left').set('$', '+winner_show');
$('#ww').set('$', '-hidden +fadeIn');
$('.bg_winner').set('$', '-hidden +fadeIn');
} else {
$('.team.left').set('$', '+animated +fadeOutUp');
$('.team.right').set('$', '+winner_show');
$('#ww').set('$', '-hidden +fadeIn');
$('.bg_winner').set('$', '-hidden +fadeIn');
}
updating = false;
}, 1000);
}
这是负责显示的部分。尽管代码不起作用,但我的函数获胜者始终返回“true”,然后脚本停止。这可能是语法错误,但我找不到它。
最佳答案
您遇到范围问题。您在函数作用域内声明 var wygrany ,任何不驻留在该作用域内的作用域都无权访问。
//outside scope
var wygrany = '';
function winners() {
updating = true;
if (mm == "Best of 3") {
wygrany = (s1 == "2")? 'left' : 'right';
return true;
}
if (mm == "Best of 5") {
wygrany = (s1 == "3")? 'left' : 'right';
return true;
}
if (mm == "Best of 7") {
wygrany = (s1 == "4")? 'left' : 'right';
return true;
}
return false; }
然后您就可以在任何地方访问它。您还需要做:
if (winners() == true) {
不确定winners
是否也是一个变量?令人困惑的是你如何拥有它,但如果这就是你的意图,你必须添加 ()
来进行函数调用。
我不知道为什么它会“总是返回 true”,但似乎该函数甚至没有被调用,因为您没有调用函数 winners()
。但是解决这些问题,如果您仍然遇到问题,我们可以了解为什么它总是返回 true。
检查开发人员工具,您会在控制台调试器中看到这些错误。
关于javascript - 更新特定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45497784/