2012-04-06 162 views
0

之前,我運行一個簡單的循環:jQuery的循環問題,完成任務的下一個循環

var c=0; 

while(c<count){ 
    theimg = $container.find('.img'+c+''); 

    $thisX = theimg.css('top'); 

    theimg.css({ 
     'top':'500px', 
     'display':'block', 
     'opacity':'0' 
    }); 

    theimg.animate({ 
     'opacity':'1', 
     'top':$thisX 
    },800,'linear',function(){ 
     c++; 
    }); 
} 

我已經試過這是一段時間,並都崩潰瀏覽器。這使我認爲它正在創造一個無限循環。

我想循環運行每個元素,一旦動畫完成,繼續下一步。任何幫助將是巨大的:)

回答

1

試試這個:

var c=0; 

function nexStep(){ 
    if (c>=count) { 
    return; 
    } 
    var theimg = $container.find('.img'+c+''); 
    var $thisX = theimg.css('top'); 
    theimg.css({ 
     'top':'500px', 
     'display':'block', 
     'opacity':'0' 
    }); 

    theimg.animate({ 
     'opacity':'1', 
     'top':$thisX 
    },800,'linear',function(){ 
     c++; 
     nexStep(); 
    }); 
} 
nexStep(); 
+0

+1 ......我剛開始用這個來的jsfiddle ... – JKirchartz 2012-04-06 12:44:01

+0

感謝,希望我問了大約一個小時前。這工作得很好。 – 2012-04-06 12:45:40