Javascript setInterval循环停止

Javascript setInterval loop stopping

本文关键字:循环 setInterval Javascript      更新时间:2023-09-26

我想清除h = 0时的间隔;M = 0;S = 0;

怎么做……这个循环总是…

查看代码

var h = 10;
var m = 11;
var s = 12;

function countdown() {
    h--;
    m--;
    s--;
    var t = h + ":" + m + ":" + s;
    document.getElementById("show").innerHTML = t;

    if (h == 0 && m == 0 && s == 0) {
        clearInterval(timer);
    }
}
var timer = setInterval('countdown()',1000);
countdown();

像这样使用条件

if (h > 0)
h--;
if (m > 0)
m--;
if (k > 0)
s--;

看到演示

h, ms在不同的点达到0,因此它们不会同时都等于0。

您需要通过以下操作来防止它们递减到小于0:

if (h) h--;
if (m) m--;
if (s) s--;

现场演示: http://jsfiddle.net/Kn296/

h, m, s不会同时是0,所以h == 0 && m == 0 && s == 0永远不会是true

这是因为你的h, m和s的值永远不会同时等于零。

h, m和s同时不为0。

所以你必须检查它们是否等于或小于0。像这样修改if子句:

if(h <= 0 && m <= 0 && s <= 0){ 
    clearInterval(timer);
}

更新

我错过了,你想在屏幕上显示数字…
如果变量大于0

,就应该减小变量
if(h>0) h--;
if(m>0) m--;
if(s>0) s--;