2016-04-14 9 views
0

私は一連の要素を実行し、一定の時間、それぞれの不透明度を切り替えて通常に戻そうとしています。私は、遅延、キュー、およびスリープ関数を使用してみましたが、運がなかった。奇妙なことに、私はちょうど私がデバッグモードになっているとき、物事は予想どおりに動作することに気づいた。しかし、デバッグモード以外では、何も動作しません。ここで私は、現在のforEach()ループ内で実行しようとしているものです:jQuery addClass/removeClassはデバッグ中に実行されますが、通常の実行ではありません

$currEl.toggleClass("light"); 
sleep(1000); 
$currEl.toggleClass('light'); 

ここでは、完全なコードは次のとおりです。https://jsfiddle.net/qdzsws7b/

答えて

0

ビジー待機は危険なことができます。 "sequence"と "index"グローバル変数を作ってから、setTimeoutでクラスをトグルしてみてください。

var currSequence, currIndex; 
function playSequence(sequence){ 
    currSequence = sequnece; 
    currIndex = 0; 
    changeLight(); 
} 
function changeLight(){ 
    if (currIndex > 0){ 
     $('#' + mapping[currSequence[currIndex - 1]]).toggleClass('light'); 
    } 
    $('#' + mapping[currSequence[currIndex++]]).toggleClass('light'); 
    if(currIndex < currSequence.length) 
     setTimeout(changeLight, 1000); 
} 
関連する問題