【发布时间】:2021-03-12 22:54:16
【问题描述】:
我正在尝试制作一个计时器,但我无法让它停止。我正在使用 setinterval() 和 clearinterval() 我是新的使用这种方法,所以我不知道我是否以正确的方式使用它们 这是我的代码:
var estado = "desactivado";
function play() {
if (estado == "desactivado") {
console.log(estado);
estado = "activado";
var mytimer = setInterval(() => {
timer();
}, 1000);
} else if (estado == "activado") {
clearInterval(mytimer);
}
}
function timer() {
let segundos = document.getElementById("segundos");
let minutos = document.getElementById("minutos");
let horas = document.getElementById("horas");
if (segundos.value < 60) {
segundos.value++;
} else {
if (segundos.value == 60) {
if (minutos.value == 60) {
horas.value++;
minutos.value = 00;
segundos.value = 00;
} else {
minutos.value++;
segundos.value = 00;
}
}
}
}
【问题讨论】:
-
问题在于变量
mytimer的范围 - 每次调用play时它都是不同的变量,因此clearInterval(mytimer)不起作用 -
因为 myTimer 是在函数中定义的......仅供参考:setTimeout 对于计时器来说是不准确的。
-
拜托 HTLM 部分... -> id="segundos" 的 HTML 元素是什么?选择框?
标签: javascript timer setinterval clearinterval