2014-02-13 129 views
0

需要我的TimeCircles倒計時器實現的幫助。jquery TimeCircles卡住了

的整體概念是這樣的:

我有一個倒數計時器

<div id="countdown" style="width:150px;float:right"> 

然後我用GET方法

檢索PHP腳本中JSON定時器的值保留我的網頁上一個div
$.getJSON("/app/test/catcher.php",{choice:answer},function(data){//blah-blah 

基於該值(data.timeout)我修改倒數div並創建綁定到該div使用數據計時器屬性的計時器(如果先前銷燬的最後一個實例t他定時器)

if(data.timeout>0){ 
var timer=$('#countdown').TimeCircles({ 
"bg_width": 0.1, 
"fg_width": 0.1, 
"circle_bg_color": "#6f6f6f", 
"count_past_zero": false, 
"time":{ 
"Days":{"show":false}, 
        "Hours":{"show":false}, 
        "Minutes":{"show":false}, 
        "Seconds":{"text":"","color":"#E73263"} 
       } 
      }); 
      timer.destroy(); 
      $('#countdown').attr('data-timer',data.timeout); 
      timer.rebuild(); 

所以,問題是,我每次設置數據定時器的值時它相應地改變我的HTML代碼,但計時器是頑固堅持數據計時器的第一個值。我花了很多時間試圖解決這個問題,一切都是徒勞的,所以我會很感激你對這件事的任何建議。

回答

2

我是jQuery TimeCircles的創建者。

首先,確保您使用的是最新版本。

然後:你不需要每次都必須銷燬它。相反,TimeCircles當前使用jQuery讀取data-timer.data('timer')

當屬性更改時,此屬性不會更改,但使用.data('timer', 10)設置時,此屬性不會更改。

你應該能夠減少您的代碼:

$("#countdown").data('timer', parseInt(data.timeout)).TimeCircles().restart(); 

我希望這有助於!