2017-03-02 73 views
0

http://codepen.io/scabbyjoe/pen/evJWwX?editors=1011混亂的程序流程

order.forEach(function(element) { 
     $(element).addClass("pressed"); 
     console.log("Added to " + element); 
     timeoutID = window.setTimeout(function() { 
     $(element).removeClass("pressed"); 
     console.log("Removed from " + element); 
     }, 2000); 
    }); 

我用foreach循環裏面的setTimeout我的程序流程難住了。

我期待程序,在循環的單個迭代中添加類,等待,然後刪除類,然後移到下一個迭代。

但是,據我所知,程序是添加類,移動到下一個迭代,添加該類等,然後一旦它完全迭代,移動到被設置爲延遲的remove類函數。

+0

你寫這篇文章,或者您想了解的代碼,別人寫的嗎? –

+0

@貢薩洛 - 我寫了這個。 – scabbyjoe

回答

0

基本上您的代碼添加「按下」到每個塊的所有同時類,再經過2000毫秒同時去除「按下」的所有類。

如果你想要的代碼,以使得它從一個類移動到另一個類中運行,你將不得不使用jQuery deferred objects