2010-12-14 121 views
0

我有一些非常简单的代码,我想用它作为更大的jQuery解决方案的起点。我需要count()函数来循环,但是我不能用下面的代码来实现,只运行一次然后停止。会欣赏一些指针。jQuery的循环队列

$(function() { 
    count(); 
}); 

function count(){ 
    var $count = parseInt($("#count").text()); 
    $("#count").text($count).delay(2000).queue(function() { 
     $(this).text($count+1); 
     count(); 
    }); 
} 

回答

3

你需要调用一个函数在队列中,像这样:

$(count); 

function count(){ 
    var $count = parseInt($("#count").text()); 
    $("#count").text($count).delay(2000).queue(function(n) { 
     $(this).text($count+1); 
     count(); 
     n(); 
    }); 
} 

You can test it out here。或者,您可以用$(this).dequeue()代替n(),这两种方法都适用。如果有帮助,你也可以苗条下来一点,像这样:

$(count);  
function count(){ 
    $("#count").delay(2000).queue(function(n) { 
     count(); 
     $(this).text(function(i, t) { return parseInt(t, 10)+1; }).dequeue(); 
    }); 
} 

You can test that version here

+0

是的,它的工作原理!谢谢Nick :) – pingu 2010-12-14 12:12:23

+0

嘿,尼克,我对这个问题有疑问 - 想知道你是否有任何建议?你的答案总是我找到的最好的解释和帮助。 http://stackoverflow.com/questions/4445843/jquery-preloading-images-for-animation – pingu 2010-12-15 04:27:58