Javascript 倒计时计时器未运行

Javascript 倒计时计时器未运行,javascript,countdown,Javascript,Countdown,好的,谢谢大家。在我看到评论后,问题就解决了 我的倒计时没有运行 <script type="text/javascript"> function timer(){ var count = document.getElementById("numb").value; var counter=setInterval(timer, 1000); var detik = count; do { count--; document.getElemen

好的,谢谢大家。在我看到评论后,问题就解决了

我的倒计时没有运行

<script type="text/javascript">

function timer(){
var count = document.getElementById("numb").value;
var counter=setInterval(timer, 1000);
var detik = count;
    do {
        count--;
        document.getElementById("timer").innerHTML=count + " secs";
        if (count<=0) {
            count = detik+1;
        }
    } while (count===detik+1);
}

</script>

<input type="text" id="numb" name="numb" value=""></input>
<input type="button" value="click" onClick="timer();"/>
<span id="timer"></span>

函数计时器(){
var count=document.getElementById(“numb”).value;
var计数器=设置间隔(计时器,1000);
var detik=计数;
做{
计数--;
document.getElementById(“计时器”).innerHTML=count+secs;

如果(count我这样更改了它,它就可以工作了:

window.timer = function timer() {
    var count = document.getElementById("numb").value;
    var cTimer = document.getElementById("timer").innerHTML;

    if(cTimer && !isNaN(parseInt(cTimer))) cTimer = parseInt(cTimer) - 1;
    else cTimer = count;
    if(cTimer==0) return;
    document.getElementById("timer").innerHTML = cTimer + " secs";
    setTimeout(timer, 1000);
}

这就是您的工作。

您的计时器功能存在一些逻辑问题。请检查此项

HTML

<input type="text" id="url" name="url" value=""></input>
<input type="button" value="click" onClick="timer();" />
<span id="timer"></span>
<input type="text" id="url" name="url" value="">
<input type="button" value="click" onclick="timer1(1);"/>
<div id="timer"></div>

JavaScript

 function timer() {
clearInterval(counter);
var count = parseInt(document.getElementById("url").value);
document.getElementById("timer").innerHTML = count + " secs";
var counter = setInterval(function () {
    count = count - 1;
    if (count <= 0) {
        clearInterval(counter);
        return;
    }
    document.getElementById("timer").innerHTML = count + " secs";
}, 1000);
函数计时器(){
清除间隔(计数器);
var count=parseInt(document.getElementById(“url”).value);
document.getElementById(“计时器”).innerHTML=count+secs;
变量计数器=设置间隔(函数(){
计数=计数-1;

如果(count您的代码中存在
逻辑错误
。例如,您输入了
5
,然后单击按钮。
count
存储
5
detik
也是如此

do-while
循环中,计数递减(现在是
4
)。然后这将显示在屏幕上。如果不满足
条件,则显示
。但是
do-while
条件也不是真的。因此,它将退出循环

由于函数有
setInterval
,所以整个过程会再次重复。总的来说,计数器保持不变

您需要做的是:

HTML:

<input type="text" id="numb" name="numb" value=""></input>
<input type="button" value="click" onClick="start_timer();"/>
<span id="timer"></span>
var count;
var intrv;
function start_timer(){
    count = document.getElementById("numb").value;
    count = parseInt(count);//convert to int..
    intrv = setInterval(timer, 1000);
}
function timer(){
    document.getElementById("timer").innerHTML = count + " secs";
    count--;
    if(count<0)
    {
        clearInterval(intrv);
    }
}

JS:

<input type="text" id="numb" name="numb" value=""></input>
<input type="button" value="click" onClick="start_timer();"/>
<span id="timer"></span>
var count;
var intrv;
function start_timer(){
    count = document.getElementById("numb").value;
    count = parseInt(count);//convert to int..
    intrv = setInterval(timer, 1000);
}
function timer(){
    document.getElementById("timer").innerHTML = count + " secs";
    count--;
    if(count<0)
    {
        clearInterval(intrv);
    }
}
var计数;
var-intrv;
函数启动计时器(){
count=document.getElementById(“numb”).value;
count=parseInt(count);//转换为int。。
intrv=设置间隔(计时器,1000);
}
函数计时器(){
document.getElementById(“计时器”).innerHTML=count+secs;
计数--;

如果(计数JAVASCRIPT

var count = 0;
var inter;
function timer1(flag){
    if(flag == 1)
    {
        count = document.getElementById("url").value;
        console.log(count);
        flag = 0;
    }
    count--;
    document.getElementById("timer").innerHTML= count + " secs";
    if(count<=0){
        clearTimeout(inter);
    }else{
        inter = setTimeout(function(){timer1(0)},1000);
    }
}
var计数=0;
var-inter;
功能计时器1(标志){
如果(标志==1)
{
count=document.getElementById(“url”).value;
控制台日志(计数);
flag=0;
}
计数--;
document.getElementById(“计时器”).innerHTML=count+secs;

如果(countRelated:千万不要使用
setInterval
每1秒手动从
i
中提取1,因为您认为它将精确地每秒钟执行一次,但事实是,它不会。要找到一个好的例子并不难:@user3142044:再次检查我的答案。不,我不是这个意思。该值必须输入Not参数。@user3142044:chec请再说一遍我的答案。