1

我创造了一个记忆,我几乎完成了一切。我剩下的问题是,在 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);

如果在另一张牌上发生点击,当它等待将两张打开的牌翻过来时,玩家将获得额外的减分,这不是应该发生的。任何人都可以帮忙吗?

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

4

1 回答 1

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

这能解决你的问题吗?

于 2013-03-27T18:42:47.747 回答