更新特定变量

时间:2017-08-04 03:24:12

标签: javascript

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'或者'对'。

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);
}

这是负责展示的部分。虽然代码不起作用,但我的功能获胜者总是返回真实的'然后脚本停止。这可能是语法错误,但我无法找到它。

2 个答案:

答案 0 :(得分:1)

您有范围问题。您在函数范围内声明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()。但要解决这些问题,如果你仍然遇到麻烦,我们可以看到为什么它总是回归真实。

查看开发人员工具,您可能会在控制台调试器中看到这些错误。

答案 1 :(得分:0)

实际上我需要稍微重新定义我的功能获胜者:

function winners() {
updating = true;
if (mm == "Best of 3") {
    if(s1 == "2" || s2 == "2") {
        wygrany = (s1 == "2")? 'left' : 'right';
        return true;
    } else {
        return false;
    }
}
if (mm == "Best of 5") {
    if(s1 == "3" || s2 == "3") {
        wygrany = (s1 == "3")? 'left' : 'right';
        return true;
    } else {
        return false;
    }
}
if (mm == "Best of 7") {
    if(s1 == "4" || s2 == "4") {
        wygrany = (s1 == "4")? 'left' : 'right';
        return true;
    } else {
        return false;
    }
} }

我在范围之外声明了变量wygrany。 但如果我改变

if (winners == true)

if (winners() == true)

脚本甚至更早停止。我忘了添加winners是变量,我之前声明并忘记删除,这会影响代码吗?