停止倒计时javascript

时间:2014-04-07 13:18:30

标签: javascript

我是js中的新手并且我创建了简单的倒计时但我想在count = 0的值时停止它 这是我的剧本

var no;
no = 5;
$(document).ready(
    function(){
    timer();
    var t = setInterval(timer, 1000);
    var c = setInterval(cek, 1000);
    }

);
function timer(){
      no--;
      $('.timer').html(no);
}

function cek(){
    if(no===0){
        alert('done');     
        clearInterval(t);
        clearInterval(c);


    }

}

这是我的剧本的链接:here

6 个答案:

答案 0 :(得分:2)

您可以尝试这样做(只需要一个这样的间隔就可以创建2个异步定时器):

var t;
var no = 5;
$(document).ready(function() {
    t = setInterval(function() {
        timer();
        cek();
    }, 1000);
});

function timer() {
    no--;
    console.log('NO');
    $('.timer').html(no);
}

function cek() {
    if(no===0) {
        alert('done');     
        clearInterval(t);
    }
}

您可以查看小提琴@ http://jsfiddle.net/bG8yr/5/

的更新版本

答案 1 :(得分:1)

简单的问题,你的变量是在ready / anonymous函数闭包中定义的。我想说明这不是最好的方法。将来检查小提琴并查找控制台错误。它很容易弄清楚什么是错误的。

http://jsfiddle.net/cYWBL/

var no, t, c, no = 5;
$(document).ready(
    function(){
      timer();
      t = setInterval(timer, 1000);
      c = setInterval(cek, 1000);
    }

);
function timer(){
    no--;
   $('.timer').html(no);
}

function cek(){
    if(no===0){
        alert('done');     
        clearInterval(t);
        clearInterval(c);
    } 
}

答案 2 :(得分:0)

试试这个:

function timer(){
  no--;
    if (no >= 0)
  $('.timer').html(no);
}

答案 3 :(得分:0)

这将完全符合您的要求:

var no, 
t;
no = 5;

$(document).ready(

    function () {
        t = setInterval(timer, 1000);
    }

);

function timer() {
    no--;
    $('.timer').html(no);
    if (no === 0) {
        alert('done');
        clearInterval(t);
    }
}

答案 4 :(得分:0)

这是您需要的javascript代码。只包括一个非常简单的if-else。所有代码都是你的。如果计时器小于0,则添加,而不是其他任何事情。

var no;
no = 5;
$(document).ready(
    function(){
    timer();
    var t = setInterval(timer, 1000);
    var c = setInterval(cek, 1000);
    }

);
function timer(){
  no--;
    if(no<0){ //nothing }
    else{
      $('.timer').html(no);
    }
}
function cek(){
    if(no===0){   
        alert('done');  
        clearInterval(t);
        clearInterval(c);
    }

}

答案 5 :(得分:0)

以下是答案

http://jsfiddle.net/bG8yr/4/

var no;
no = 5;
var isRunning=false;
$(document).ready(
    function(){ isRunning=true;
    timer();
    var t = setInterval(timer, 1000);
    var c = setInterval(cek, 1000);
    }
);
function timer(){
    if(isRunning){
      no--;
        $('.timer').html(no+":"+isRunning);
    }
}

function cek(){
    if(no===0&&isRunning){
        isRunning=false;
        alert('done');     
        clearInterval(t);
        clearInterval(c);
    }
}