在settimeout函数中,防止onclick函数处于活动状态

时间:2013-03-27 18:13:48

标签: javascript

我创造了一个记忆,我几乎完成了所有这些。我剩下的问题是,在setTimeout函数中,

setTimeout(function(){
    for(i = 0; i < guesses.length; i++){
        if(clearedPairs[i] != i){
            var reset = document.getElementById(cardPosition[i]);
            reset.removeAttribute("style");
        }
    }
    score.innerHTML = parseInt(score.innerHTML,10) - 10;
    resetValues();
}, 800);

如果另一张卡片发生咔嗒声,当它等待将两张打开的卡片重新打开时,播放器将会收到额外的减号,而这不是应该发生的事情。有人可以帮忙吗?

如果需要,我可以发布更多代码。

1 个答案:

答案 0 :(得分:0)

您可以使用变量来监视您的状态:在setTimeout函数中,将其设置为true。完成后点击可以接受,请将其设置为false。然后在您的点击处理程序中使用if语句来检查状态。

var inFunction = false;

setTimeout(function(){
    inFunction = true;
    for(i = 0; i < guesses.length; i++){
        if(clearedPairs[i] != i){
            var reset = document.getElementById(cardPosition[i]);
            reset.removeAttribute("style");
        }
    }
    score.innerHTML = parseInt(score.innerHTML,10) - 10;
    resetValues();
    inFunction = false;
}, 800);

这是否解决了您的问题?