0

基本上我有一个类计数系统,它显示类的数量并将它们显示在一个span元素中。下面是代码:

$.get('other.html', function(data) {
$('#total').html($('.doc', data).length);
});

这完美地工作,但是我想要一种方法让数字一个一个地增加,因为页面加载时 span 元素包含 0 。这是一个例子(这里的数字在增加)。

为此,我已经尝试过setTimeout,尽管这无论如何都不起作用,但我发布它只会延迟功能,然后显示结束编号。我听说过periodical或使用过类似的东西,但在示例源代码中找不到。

对于更糟糕的措辞,我真的很抱歉。如果您不知道我的意思,那么请询问,我会尝试改写或找到更好的示例。

4

2 回答 2

0

关键是增加数字的功能应该在终止之前设置一个 setTimeout 来调用自己。这样它总是会被再次调用。如果您想要停止递增的选项,您可以添加一个全局变量,并且该函数只会在该变量为真时设置新的超时。

例子:

var doIncrement = true;
var numberToIncrement = 0;

function increment {
    numberToIncrement++;
    $('#mySpan').text(numberToIncrement);
    if (doIncrement) {
        setTimeout(increment, 1000);
    }
}
于 2013-04-20T18:39:54.630 回答
0

您可以使用setInterval允许您在某些时间间隔运行代码的功能。clearInterval允许停止任务。

http://jsfiddle.net/d52Pw/

var $totalEl = $('#total');

$.get('other.html', function(data) {
    var len = $('.doc', data).length,
        count = 0,
        int = setInterval(function () {
            if (++count === len) {
               //when we reach len, we stop the task
               clearInterval(int);
            }

            $totalEl.html(count);
        }, 500); //run every 1/2 sec
});
于 2013-04-20T18:42:36.800 回答