0

我的问题在这个网站上有部分解决方案,但不是完整的答案。

在我的 wordpress 主页上,我显示了在我们的 web 应用程序中回答的问题数量的计数器。这是使用 jQuery 和 AJAX 从 php 文件中检索问题计数来显示的,并且可以正常使用此代码。

jQuery(document).ready(function() {
function load() {
jQuery.get('/question_count.php', function(data) {jQuery('#p1').html( data );  });
}
load();
setInterval(load,10000);
});

有没有办法显示计数到检索到的新数字,而不是立即显示它?

4

2 回答 2

0

像这样的东西?

function countTo(n) {
    var p = $("#p1"),
        c = parseInt(p.html(), 10) || 0,
        dir = (c > n ? -1 : 1);    // count up or down?

    if (c != n) {
        p.html((c + dir) + "");

        setTimeout(function() {
            countTo(n);
        }, 500);
    }
}

在您的成功处理程序中调用它

jQuery.get('/question_count.php', function(data) {
    var n = parseInt(data, 10);

    countTo(n);
});

例子

于 2013-05-10T21:55:31.700 回答
0

您将需要执行 setInterval 事件,以便人眼可以看到计数。如果您最终遇到足够多的问题,而计数需要很长时间才能到达终点,这可能是一个问题。

代码将如下所示:

function load(){
   jQuery.get('/question_count.php', function(data){
      var curr = 0;
      var max = parseInt(data);
      var interval = setInterval(function(){
        if(curr==max){
           clearInterval(interval);
        }
        jQuery('#p1').html( curr );
        curr+=1; //<-- if the number of questions gets very large, increase this number
      },
      10 //<-- modify this to change how fast it updates
      });
   }
}
于 2013-05-10T21:56:42.023 回答