タイムアウトに基づいてゲームの停止と復帰を制御することに問題があります。私のコード:
var state = true, timer;
function block(isOn) {
    if (isOn) {
        $('#block').click(function () {
            $(this).fadeOut(1200, function () {
                state = true;
                timer = setInterval(playGame, 500);
            });
        });
    } else {
        clearInterval(timer);
        $('#block').fadeIn(1200, function () {
            block(true);
        });
    }
}
function playGame() {
    if (state) {
        (repeated game instructions)
    } else {
        block(false);
    }
}
$(document).ready(function () {
    block(true);
    $('#refresh').click(function () {
        state = false;
    });
});
ブロックは私のスタートページやブレークページのようなものです。ゲームはブロックがオンに設定された状態でtrue始まり、クリックするとゲームはインターバルで始まります。しかし、#stopをクリックすると、状態が変化してゲームが停止し、タイマーをリセットしたいと思いclearIntervalます。それから私は再び見せていblock(true)ます。動作しますが、プレーヤーがもう一度クリックし#blockてゲームに戻ると、倍速のようなものから始まります。関数の2つのインスタンスがplayGame同時に機能しているようです。それが何であるかわかりません、多分私はインターバルを不適切に使用しています。
ありがとうAntonyを編集 しましたが、setIntervalに変更しても問題は解決しませんでした。blockUpとblockDownを1つの関数に変更します。上記のコードを実際の進捗状況に合わせて更新しました。
とに変更clearInterval(timer);しtimer = null;てみましdelete window.timer;た。それから私はsetIntervalの再起動についてグーグルを始めます、そして私はこれが深刻な問題であることがわかります。私のゲームは多くのjqueryオブジェクトを使用しているので、タイマーの配列を作成したくありません。経済的な解決策を探しています:)