Javascript setInterval时间不起作用

时间:2017-06-26 12:19:56

标签: javascript

我似乎无法弄清楚为什么升级时farmerTime没有更新。有一个按钮只会为farmingLevel添加一个级别。

    window.setInterval(function() {
            farmerTime = 2500;
            farmerLevel = 3;

            x = farmerTime;
            y = farmerLevel;
            z = x / y;
            farmerTime = z;

            if (farmers >= 1) {
                    a = farmers;
                    b = potatoes;
                    c = a * 1;
                    d = b + c;
                    potatoes = d;
            }
    }, farmerTime);`

1 个答案:

答案 0 :(得分:0)

您需要在使用之前定义farmerTime。在您的情况下,在setInterval函数之前。另外,如果您想更改farmerLevel,则需要将其更改为其他位置,而不是setinterval函数。

更改级别示例:

<button type="button" onclick="setFarmerLevel(farmerLevel + 1);">Change level </button>

间隔事物的代码:

var farmerTime  = 2500;
var farmerLevel = 1;

var setFarmerLevel = function (level) {
    farmerLevel = !level ? 1 : level;
    farmerTime  = farmerTime / farmerLevel;
    clearInterval(farmerInterval);
    farmerInterval = window.setInterval(run, farmerTime);
};

var run = function () {
    if (farmers >= 1) {
        a = farmers;
        b = potatoes;
        c = a * 1;
        d = b + c;
        potatoes = d;
    }
};

var farmerInterval = window.setInterval(run, farmerTime);

<强>更新

我忘了setInterval的函数时间不能在运行时更改,所以代码现在更新。