0

この setTimeout 関数は 1 回だけ実行され、その後停止します。エラーが発生しないので、なぜそれが起こっているのかわかりません。

count = 100;

counter = setTimeout('timer()', 100);

$('#reset').click(function() {
    count = 100;
    counter = setTimeout('timer()', 100);
})

function timer() {
    if (count <= 0) {
        clearTimeout(counter);
        alert('done');
    }
    $('#counter').html(count);
    count -= 1;
}

私はsetTimeout関数のいくつかの異なる定式化を試みましたsetTimeout(timer(),100).setTimeout(function() { timer() }, 100)

4

6 に答える 6

2

setInterval()一度だけ行うのではなく、関数呼び出しを繰り返すを使用する必要がありますsetTimeout()()また、関数名の参照には使用しないでください。

var count = 100;

var counter = setInterval('timer', 100);

$('#reset').click(function() {
    count = 100;
    counter = setInterval('timer', 100);
})

function timer() {
    if (count <= 0) {
        clearInterval(counter);
        alert('done');
    }
    $('#counter').html(count);
    count -= 1;
}
于 2013-03-04T22:31:13.763 に答える
0

setTimeout正しく動作しますが、それはあなたが探しているものではありません。setInterval代わりに試してください。setInteval(function, delay)

于 2013-03-04T22:29:25.293 に答える
0

setTimeout()-指定されたミリ秒数待機した後、関数を1回実行します。

setInterval()あなたはおそらく、指定された時間間隔で何度も何度も関数を実行するために行きたいと思うでしょう。

于 2013-03-04T22:29:36.740 に答える
0

はい、そうsetTimeoutです。コードを1回実行します。

setIntervalこのメソッドを使用して、コードを繰り返し実行したいとします。

于 2013-03-04T22:30:03.593 に答える
0

何を達成しようとしているのかわからず、$('#reset')。click(etc)構文がわかりません。これらはJQueryですか?

しかし、なぜsetInterval()を使用しないのですか?そして、条件が満たされたときにインターバルタイマーをクリアしますか?

于 2013-03-04T22:31:19.693 に答える