使用jQuery暂停倒计时

时间:2013-12-19 23:13:16

标签: javascript php jquery html

当有人点击div本身时,我基本上想要时间停止倒计时。

所以我有以下代码

var count = 60;

jQuery("#watched_countdown").text(count);

var myTimer = setInterval(function(){
    if(count > 0){
        count = count - 1;
        jQuery("#watched_countdown").text(count);
    }
    else {
       clearInterval(myTimer);
       update_entry_episode(); 
    }
},1000);

此代码用于倒计时

然后我有这个显示倒计时的html标记

<a href="javascript:void(0)" onclick="cancel_countdown();">
<div id="watched_countdown"></div>
</a>

所以基本上如果有人点击链接,它应该暂停倒计时。所以我想当有人点击链接时我会运行另一个可能暂停倒计时的功能,因为当用户点击此链接时我不希望update_entry_episode()功能运行。

所以在视觉上它应该暂停倒计时,而在后端它不应该运行update_entry_episode(),只要count没有达到零,就应该自动发生。

我的主要内容是,我应该在cancel_countdown()中放置什么来阻止count变量减少?

2 个答案:

答案 0 :(得分:1)

<div id="watched_countdown"></div>

<a href="#cancel" id="cancel">cancel</a>

使用 clearInterval ();

var count = 60;

$("#watched_countdown").text(count);

var myTimer = setInterval(function(){
    if(count > 0){
        count = count - 1;
        $("#watched_countdown").text(count);
    }
    else {
       clearInterval(myTimer);
       update_entry_episode(); 
    }
},1000);


var cancelCount = function(){
    clearInterval(myTimer);
    myTimer = null;
};

$('body').on('click','#cancel',cancelCount);

答案 1 :(得分:0)

您需要使用clearInterval()来“暂停”计时器,然后使用完整的setInterval再次启动计时器。我建议将setInterval回调定义为命名函数,以便您可以在多个位置引用它。