Javascript setInterval循环停止

时间:2013-04-26 12:32:43

标签: javascript

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

5 个答案:

答案 0 :(得分:3)

使用你喜欢的条件

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

See Demo

答案 1 :(得分:2)

hms在不同点达到0,因此它们不会同时等于零。

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

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

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

答案 2 :(得分:1)

hms不会同时0,因此h == 0 && m == 0 && s == 0永远不会是true。< / p>

这就是你的循环永不停止的原因。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

h,m ans 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--;