2010-12-14 4 views
0

J'ai un code très simple ci-dessous que je veux utiliser comme point de départ pour une solution jQuery plus grande. J'ai besoin de la fonction count() pour boucler, mais je ne suis pas capable d'y parvenir avec le code ci-dessous qui ne s'exécute qu'une seule fois puis s'arrête. Apprécierait quelques pointeurs.File d'attente en boucle avec jQuery

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

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

Répondre

3

Vous devez appeler la fonction suivante dans la file d'attente, comme ceci:

$(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. Alternativement, vous pouvez remplacer n() par $(this).dequeue(), de toute façon fonctionne. Si elle aide, vous pouvez aussi mince vers le bas un peu, comme ceci:

$(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

Oui, ça marche! Merci Nick :) – pingu

+0

Hey Nick, j'ai un suivi sur la question avec ce problème - se demandant si vous pourriez avoir des suggestions? Vos réponses sont toujours celles que je trouve les mieux expliquées et les plus utiles. http://stackoverflow.com/questions/4445843/jquery-preloading-images-for-animation – pingu