单击重置设置间隔
Onclick reset setInterval
<!DOCTYPE html>
<html>
<head>
<script>
function timer(x) {
if (x == 1) {
//reset timer
}
var i = 0;
var timer = setInterval(function() {
var x = document.getElementById("demo").innerHTML = i;
i = i + 1;
}, 500);
}
</script>
</head>
<body>
<p id="demo">hello</p>
<button type="button" onclick="timer(0)">change</button>
<button type="button" onclick="timer(1)">reset</button>
</body>
</html>
我想在单击时重置计时器。 例如,如果 setIntervaltime 设置为 5 秒并且经过 3 秒,之后如果有人点击重置按钮,它应该从 5 秒开始增益。如何做到这一点。
- 将
setTimeout
的返回值保留在可以再次获取它的地方(当前您将其存储在局部变量中,因此当函数结束时它会消失( - 呼叫
clearTimeout(timer);
- 再次用你想要的任何参数调用
setTimeout
。
正如昆汀已经提到的,使用clearInterval
来解决你的问题。
将其包装在if.else..
语句中,例如
if(x == 1) {
clearTimeout(timeout);
}
else {
timeout = setInterval..... // otherwise even after resetting
// it will continue to increment the value
}
完整代码:
var timeout; // has to be a global variable
function timer(x) {
var i = 0;
if (x == 1) {
clearTimeout(timeout);
document.getElementById("demo").innerHTML = i;
} else {
timeout = setInterval(function () {
var x = document.getElementById("demo").innerHTML = i;
i = i + 1;
}, 1000);
}
}
JSFiddle
相关文章:
- 设置单击编辑输出的样式
- 设置单击项目符号导航后不起作用的间隔
- 内容可编辑DIV单击/插入符号设置
- 在PHP中,如何通过单击页面上的文本来设置文本框值
- 单击输入时,将提交按钮设置为另一个
- 在chrome中单击时设置SelectionRange不会在第二次单击时进行选择
- 如何在jRate插件上设置readOnly;单击一颗星后的参数
- 单击链接时设置cookie
- jQuery UI 选项卡 - 将参数设置为下一个/上一个按钮单击
- 元素单击处理程序由一个神秘的函数取消设置
- j查询在设置属性后在后续单击时不读取数据属性
- 在页面加载时创建/设置活动的默认链接,但在单击其他链接时删除活动链接
- 如何保存从单击this.nameClass动态设置的本地存储
- 如何使用jQuery在父级上设置单击事件
- 删除设置单击超时
- 为动态生成的链接设置单击动作
- 使用javascript XML XSLT在最后一行设置单击事件
- 在叶节点上设置单击事件
- 无法在jQuery中为2个图像设置单击事件
- 设置单击发生的位置