这是我的代码:
var sec = 10;
var timer = setInterval(function() {
$('#timer span').text(sec--);
}, 1000);
它将setTimeout
设置为10秒。我希望有一个重置按钮,单击,再次拨打setTimeout
,延迟10秒。
答案 0 :(得分:6)
您可以通过将setTimeout()
调用的结果存储到某个变量,然后在单击按钮时将存储的结果传递给clearTimeout()
,然后再安排新的超时和分配它回到同一个变量。
听起来有点棘手,但它真的非常简单。这是一个例子:
答案 1 :(得分:6)
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秒) - 这样可以更轻松地测试演示。)
答案 2 :(得分:0)
<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();
};