2013-12-19 171 views
0

我基本上希望當有人點擊div本身時,停止倒計時。使用jQuery暫停倒計時

所以我有以下代碼

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); 

此代碼是有倒計時

然後我有一個顯示倒計時

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

如果有人點擊所以基本上這個HTML標記在鏈接上它應該暫停倒計時。所以我在想,當有人點擊鏈接時,我會運行另一個可能會暫停倒計時的功能,因爲我不希望update_entry_episode()函數在用戶點擊此鏈接時運行。

因此,它在視覺上應該暫停倒計時,而在後端它不應該運行update_entry_episode(),只要count未達到零就會自動發生。

我的主要問題是我應該在cancel_countdown()停止count變量減少?

回答

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); 
+0

http://jsfiddle.net/va87q/1/ –

0

您需要使用clearInterval()'暫停'計時器,然後使用完整的setInterval再次啓動它。我建議將setInterval回調定義爲命名函數,以便您可以在多個位置參考它。

+0

所以如果我使用''

什麼會做這完全是,當點擊? – Maaz

+0

您需要將原始setInterval返回值傳遞給它。即clearInterval(myTimer); –

+0

但我能訪問該變量嗎? 這樣做 '

' 將工作,並做我需要什麼?它會暫停計時器和所有? – Maaz