Javascript 设置超时计数器不工作

Javascript 设置超时计数器不工作,javascript,settimeout,Javascript,Settimeout,此setTimeout函数只运行一次,然后停止。我没有错误,所以我不知道为什么会发生 count = 100; counter = setTimeout('timer()', 100); $('#reset').click(function() { count = 100; counter = setTimeout('timer()', 100); }) function timer() { if (count <= 0) { clearTim

此setTimeout函数只运行一次,然后停止。我没有错误,所以我不知道为什么会发生

count = 100;

counter = setTimeout('timer()', 100);

$('#reset').click(function() {
    count = 100;
    counter = setTimeout('timer()', 100);
})

function timer() {
    if (count <= 0) {
        clearTimeout(counter);
        alert('done');
    }
    $('#counter').html(count);
    count -= 1;
}
count=100;
计数器=设置超时('timer()',100);
$(“#重置”)。单击(函数(){
计数=100;
计数器=设置超时('timer()',100);
})
函数计时器(){

如果(count
setTimeout
工作正常,但不是您想要的。请尝试使用
setInterval
setInteval(函数,延迟)
在等待指定的毫秒数后执行一次函数


您可能希望在指定的时间间隔内反复执行函数。

是的,
setTimeout
就是这样做的。它只运行一次代码


您希望使用
setInterval
方法重复运行代码。

您应该使用重复函数调用的
setInterval()
,而不是只执行一次的
setTimeout()
。另外,不要在函数名引用中使用
()

var count = 100;

var counter = setInterval('timer', 100);

$('#reset').click(function() {
    count = 100;
    counter = setInterval('timer', 100);
})

function timer() {
    if (count <= 0) {
        clearInterval(counter);
        alert('done');
    }
    $('#counter').html(count);
    count -= 1;
}
var计数=100;
var计数器=设置间隔(“计时器”,100);
$(“#重置”)。单击(函数(){
计数=100;
计数器=设置间隔(“计时器”,100);
})
函数计时器(){

如果(count不确定您想要实现什么,并且我不理解$('#reset')。请单击(etc)构造。这些是JQuery吗

但是,为什么不使用setInterval()?然后在满足条件时清除间隔计时器?

var计数=10;
函数计数器(){
如果(计数>0)
{
--计数;
var t2=设置超时(计数器,1000);
document.querySelector(“#demo”).innerHTML=count;
}
其他的
{
清除超时(t2);
document.querySelector(“#demo”).innerHTML=“完成”;
}
}
var countdown_timeout=counter();

计数:

计数器=设置超时(计时器,100);是节省我大量时间的首选语法