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

開いている 2 枚のカードを裏返すのを待っている間に別のカードでクリックが発生した場合、プレーヤーは追加のマイナス ポイントを受け取りますが、これは本来起こるべきことではありません。誰でも助けることができますか?

必要に応じて、さらに多くのコードを投稿できます。

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 に答える