-2

我想在 h = 0 时清除 interverl;米 = 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();
4

5 回答 5

3

像这样使用你的条件

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

看演示

于 2013-04-26T12:36:38.447 回答
2

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

您需要通过执行以下操作来防止它们减少到低于 0:

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

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

于 2013-04-26T12:36:28.063 回答
1

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

这就是为什么你的循环永远不会停止。

于 2013-04-26T12:36:29.817 回答
1

这是因为您的h、 m 和svalues 永远不会同时为零。

于 2013-04-26T12:36:31.220 回答
0

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--;
于 2013-04-26T12:37:11.523 回答