jquery TimeCircles卡住了

时间:2014-02-13 17:28:19

标签: javascript jquery css dom timer

需要我的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代码中相应地改变,但是计时器固执地坚持数据计时器的第一个值。我花了很多时间来解决这个问题并且一切都是徒劳的,所以我很感激你对此事的任何建议。

1 个答案:

答案 0 :(得分:2)

我是jQuery TimeCircles的创建者。

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

然后:你不应该每次都要摧毁它。相反,TimeCircles目前使用jQuery data-timer

读取.data('timer')

属性更改时此属性不会更改,但使用.data('timer', 10)设置时会更改。

您应该能够将代码缩减为:

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

我希望这有帮助!