Javascript 0:00时如何停止计时器循环?

Javascript 0:00时如何停止计时器循环?,javascript,Javascript,当它结束时,它会不断地循环回来。我如何阻止它,如何创建和警告游戏结束 if(levelOption === 0) { time = 60 * 0.1, g = document.getElementById('g'), tmp = time; setInterval(function() { var c = tmp--, m = (c/60) >> 0, s = (c-m*60) + ''; g.textContent = '' + m

当它结束时,它会不断地循环回来。我如何阻止它,如何创建和警告游戏结束

if(levelOption === 0) {
    time = 60 * 0.1, g = document.getElementById('g'), tmp = time;
    setInterval(function() {
        var c = tmp--, m = (c/60) >> 0, s = (c-m*60) + '';
        g.textContent = '' + m + ':' + (s.length > 1 ? '' : '0') + s tmp != 0 || (tmp = time); 
    }, 1000);
} else if(levelOption === 1) {
    time = 60 * 10, g = document.getElementById('g'), tmp = time;
    setInterval(function(){
        var c = tmp--, m = (c/60) >> 0, s = (c-m * 60) + '';
        g.textContent = '' + m + ':' + (s.length > 1 ? '' : '0') + s tmp != 0 || (tmp = time); 
    }, 1000);
} else {
    time = 60 * 20, g = document.getElementById('g'), tmp = time;
    setInterval(function() {
        var c = tmp--, m = (c/60) >> 0, s = (c-m * 60) + '';
        g.textContent = '' + m + ':' + (s.length > 1 ? '' : '0') + s tmp != 0 || (tmp = time); 
    }, 1000);
}
  • 将setInterval值保存到某个变量,例如
    let interval=setInterval

  • 在interval函数中,如果时间是,如果您通过将时间保存到变量(
    var myCounter=setInterval(…)
    )来命名时间间隔,您可以稍后使用
    clearInterval(myCounter)
    清除时间间隔

    我不知道您在哪种情况下使用这些计数器,但我认为您可以简化逻辑。查看此计数器是否适用于您:

    time=3,
    g=document.getElementById('g'),
    tmp=时间;
    //这里我们命名我们的间隔
    var myCounter=setInterval(函数(){
    //如果计数器已达到0,请清除间隔
    如果(tmp==0)清除间隔(myCounter)
    //设置分钟和秒值
    var m=(tmp/60)>>0,
    s=tmp-m*60;
    //打印值
    g、 textContent=m+':'+((s>9)?'':'0')+s;
    //完成对计数器的修改
    tmp--;
    }, 1000);
    
    如何将时间改为5分钟而不是3秒?
    时间
    以秒为单位。一分钟内60秒表示时间=60*5,持续5分钟。我更新了代码片段打印
    s
    值的方式!是的,那是有道理的。谢谢。我试图通过
    r.textContent=m+':'+((s.length>1)?“”)+s更新
    s
    但5分钟会删除0,例如5:0,然后返回到4:59。如果我正确理解了你的问题,那是因为在你的原始代码中,
    s
    是一个字符串,你可以毫无问题地测试
    s.length
    。在我更新的代码段中,
    s
    是一个整数,这意味着
    s.length
    将不起作用。对于整数,测试它是1位还是2位数字更容易的方法是检查它的实际值(9是最高的1位数字)。