需要我的TimeCircles倒数计时器实现的帮助。
总体概念是这样的:
我的页面上有一个div用于倒数计时器
<div id="countdown" style="width:150px;float:right">
然后我使用GET方法从PHP脚本中检索JSON中的计时器值
$.getJSON("/app/test/catcher.php",{choice:answer},function(data){//blah-blah
基于该值(data.timeout),我修改倒计时div并使用data-timer属性创建绑定到该div的计时器(在破坏计时器的最后一个实例之前)
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代码中相应地改变,但是计时器固执地坚持数据计时器的第一个值。我花了很多时间来解决这个问题并且一切都是徒劳的,所以我很感激你对此事的任何建议。
答案 0 :(得分:2)
我是jQuery TimeCircles的创建者。
首先,请确保您使用的是最新版本。
然后:你不应该每次都要摧毁它。相反,TimeCircles目前使用jQuery data-timer
.data('timer')
属性更改时此属性不会更改,但使用.data('timer', 10)
设置时会更改。
您应该能够将代码缩减为:
$("#countdown").data('timer', parseInt(data.timeout)).TimeCircles().restart();
我希望这有帮助!