我创建了一个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>
答案 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
}
}