2

ユーザーがボタンをすばやくクリックする必要があるこのゲームを開発しようとしています。私の秒は10に設定されており、タイマーはボタンをクリックしたときにのみ開始され、結果を表示するだけの表示ボタンがあり、10秒後に合計がポップアップするはずです。

私の問題は、インクリメントを正しく取得できないように見え、タイマーが完了した後もクリックが登録されていることです。私は助けが必要です。

$(document).ready(function() {
    $('#total').hide();
    var sec = 10;
    $('.setthis').click(function() {
        var timer = setInterval(function() {
            sec = sec - 1;
            if (sec > 0) {
                $('#target').click(function() {
                    $('#total').html(function(i, val) {
                        return val * 1 + 1
                    });
                })
            }
            if (sec == 0) {
                $('#total').show();
                clearInterval(timer);
            }
        }, 1000);
    })
    $('#showme').click(function() {
        $('#total').show();
    })
});
4

2 に答える 2

0

ボタンをクリックするたびに、正しくない間隔を設定しています。間隔を 1 回 (最初のクリックで) 設定し、それを使用して 10 秒の終わりをマークする必要があります。

次のことを試してください。

$('#total').hide();
var clicks = 0;
var timerSet = false;
var timerDone = false;
$('#setthis').click(function () {
    if (!timerSet) {
        timerSet = true;
        setInterval(function () {
            timerDone = true;
        }, 10000);
    }
    if (!timerDone) {
        clicks++;
        $('#total').text(clicks);
    }

});
$('#showme').click(function () {
    $('#total').show();
});

作業フィドルを参照してください

于 2013-07-11T05:04:31.733 に答える