我需要我的javascript计时器停止在0,显示一条消息,然后重新启动

时间:2011-02-22 13:51:04

标签: javascript timertask

我创建了一个javascript计时器,从40开始并向下计数,但它不会停在0,我希望它显示一条消息(不是警报)/在数据库命中0时将项目添加到数据库,然后在40秒后重新启动。如果您能提供任何帮助,请提前感谢:D

<html>
<head>
<script type="text/javascript">
var c=40;
var t;
var timer_is_on=0;

function timedCount()
{
document.getElementById('txt').value=c;
c=c-1;
t=setTimeout("timedCount()",1000);
}

function doTimer()
{
if (!timer_is_on)
{
timer_is_on=1;
timedCount();
}
}
</script> 
</head>

<body>
<form>
<input type="button" value="Start count!" onClick="doTimer()">
<input type="text" id="txt">
</form>
<p>Click on the button above. It will count down from 40</p>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

您想使用setInterval而不是setTimeout,因为这将根据您指定的延迟定期触发该方法。

当计数到达0时,这将重新启动计时器:

    function timedCount() {
        document.getElementById('txt').value = c;
        c = c - 1;
        if (c == 0)
            c = 40;
    }

    function doTimer() {
        if (!timer_is_on) {
            timer_is_on = true;
            t = setInterval(function () {
                timedCount();
            }, 1000);                
        }
    }

如果你想在计数达到0时停止计时器,请使用:

    function timedCount() {
        document.getElementById('txt').value = c;
        c = c - 1;
        if (c == 0) {
            c = 40;
            clearInterval(t); // Stops the interval
        }
    }