Javascript / jQuery - 如何随时间保持同一变量的2个状态

时间:2013-03-29 14:01:49

标签: javascript jquery variables time cycle

我的问题是逻辑和javascript相关。

我的目标是为jquery counter提供同一个变量的两个状态,以便每隔x秒从开始状态增加到结束状态。

在循环结束时,我想让结束状态成为下一个开始状态,依此类推......

请注意,我从php文件中检索变量值。 (编辑)变量在函数外声明:

var $publishersCurvalue,
    $minTime,
    ...

这是我的柜台。它每5秒刷新一次。结果,因为我只使用一个变量状态( $ publishersCurvalue ),它是从前一个状态跳转到新状态。

如何在每个周期同时获得前一个值和新值? 我已经尝试了几种技术,但到目前为止还没有运气。

我的目的是触发计数器读取两个不同值时发生的增量动画。

var $i = 0;
function publisherCounter() {
    $.getJSON("counter.php?t=p", function(result) {
        // defalut values
        $minTime                      = result[0].minTime;
        $max                          = result[0].max;
        $curTime                      = result[0].curTime;

        // current value
        $publishersCurvalue           = result[0].curValue;

        // Publishers values
        $publisherMinResult           = result[0].min;
        $publisherIncPerDay           = result[0].incPerDay;

        // frequency
        $publisherIncPerDayResultTemp = parseInt((($curTime - $minTime)/86400) * $publisherIncPerDay);
        $publisherIncPerDayResult     = parseInt(86400/$publisherIncPerDayResultTemp);

        $('#counter_publishers').addClass('counter-analog').counter({
            initial: $publishersCurvalue,
            direction: 'up',
            interval: 1,
            format: '9999999',
            stop: $publishersCurvalue
        });

    });
    $i++;
};
setInterval(publisherCounter, 5000);
publisherCounter();

1 个答案:

答案 0 :(得分:0)

$publishersCurvalue从简单变量更改为具有两个属性的对象:

// wherever you declare it...
var $publishersCurvalue = {
    prev: 0,
    cur: 0
};

...

// current value
$publishersCurvalue.cur = result[0].curValue;

...

$('#counter_publishers').addClass('counter-analog').counter({
    initial: $publishersCurvalue.prev,
    direction: 'up',
    interval: 1,
    format: '9999999',
    stop: $publishersCurvalue.cur
});

我并不理解您的意图,因此您可能需要更改prevcur的使用情况。