は私のコードです:ボタンをクリックするたびにsetTimeoutをリセットしますか?ここ
var sec = 10;
var timer = setInterval(function() {
$('#timer span').text(sec--);
}, 1000);
これは、10秒間setTimeout
を設定します。私はリセットボタンをクリックして、クリックして、setTimeout
を10秒の遅延でもう一度呼び出すようにしたい。
は私のコードです:ボタンをクリックするたびにsetTimeoutをリセットしますか?ここ
var sec = 10;
var timer = setInterval(function() {
$('#timer span').text(sec--);
}, 1000);
これは、10秒間setTimeout
を設定します。私はリセットボタンをクリックして、クリックして、setTimeout
を10秒の遅延でもう一度呼び出すようにしたい。
setTimeout()
コールの結果を変数に格納し、ボタンをクリックしたときに格納した結果をclearTimeout()
に渡してから、新しいタイムアウトをスケジュールして同じ変数に割り当てます。
少し厄介ですが、実際はとても簡単です。次に例を示します。
グローバル名前空間を汚染する必要はありません。グローバル変数は使用しないでください。 –
@ ime - あなたの例は、グローバル名空間に、私のものと同じだけ多くのものを置きます。グローバルスコープで 'var'を使うと、グローバル変数が作成されます。さらに、この例の目的は、setTimeout() - >いくつかの変数 - > clearTimeout()の流れを実証することです。 – aroth
通常、私の答えは、JavaScriptコードが実行可能ハンドラ(またはロードハンドラ)の中にあるべきことを暗示しています。付属のjsFiddleデモでそのことを実証しています。 –
HTML:
<button id="resetButton">Reset</button>
はJavaScript:
var resetButton = $('#resetButton')[0],
timerId;
function timerExpired() {
alert('Timer expired');
}
$(resetButton).click(function() {
clearTimeout(timerId);
timerId = setTimeout(timerExpired, 10000);
}).triggerHandler('click');
注:このJavaScriptコードがa ready handlerの内側に配置する必要があります。
ライブデモ:http://jsfiddle.net/QkzNj/
は(。あなたが3000
(3秒のような小さい値)に遅延を設定することができます - それは簡単にデモをテストするために行います)
<div>Div</div>
var div = document.getElementsByTagName("div")[0];
function timedMsg() {
console.log("timeout expired.");
div.t = setTimeout(timedMsg, 1000);
}
timedMsg();
div.onclick = function() {
clearTimeout(div.t);
timedMsg();
};
私のコードを更新しました – idontknowhow
ですあなたのコード? – Natim
@Natimコードを追加しました – idontknowhow