每次值更改时运行函数Javascript

时间:2016-04-18 17:57:53

标签: javascript setinterval onchange

我想记录卷,但每次运行此代码时,我每秒都会得到值(或者按照间隔设置的频率)。我想要一种方法,这样我可以在值发生变化时记录日志,而不是每秒都获取一次。

var red, black;

function mainOnRed() {
    switch (checkMainOnRed()) {
        case "red":
            console.log("Black");
            break;
        case "black":
            console.log("Red");
            break;
    }
};


function checkMainOnRed() {
    if (currentColor == "black" && rowSet.length == 2) {
        return "red";
    } else {
        return "black";
    }
}

setInterval(mainOnRed, 1000);

值:

currentColor

rowSet

在脚本的其他部分中定义。

2 个答案:

答案 0 :(得分:0)

这完全取决于设置currentColor的时间。

如果在事件中设置了它,您只需为每个更改该变量值的事件调用mainOnRed

答案 1 :(得分:0)

我会做这样的事情:

var red, black, lastColor;

function mainOnRed() {
    var color = checkMainOnRed();
    if (color != lastColor) {
        console.log(color);
        lastColor = color;
    };
};


function checkMainOnRed() {
    if (currentColor == "black" && rowSet.length == 2) {
        return "red";
    } else {
        return "black";
    }
}

setInterval(mainOnRed, 1000);