2011-12-28 8 views
0

forループを呼び出し、ページの各HTMLテキスト項目をループするsetInterval関数があります。 (AJAXでチェックされた)テキスト更新がある場合、htmlテキストはflashfunction()で点滅します。Javascript ForループでsetIntervalを使用すると、jQueryアニメーションが速すぎる

$(document).ready(function() { 
    setInterval("html_update(html_text)", 11000); // influences flash time 
}); 

これは、アップデートの確認に適しています。しかし、更新があると、アニメーションが非常に速くトリガされます(forループの外側の約4倍の速さ)!

ここには、更新があるかどうかを確認するためにhtmlテキストボックスの配列をチェックするコードがあります。アップデートがある場合、ボックスは点滅します:

for (var i=0; i < id_array_len; i++) { 
....some AJAX calls here... 

if (httpRequest.ResponseText == 'update') { 
$("#htmltext").css("background", color); 
$("#htmltext").animate({ "opacity" : 0.4 }, 700, function() { 
     $("#htmltext"+id).css("background", color); 
     $("#meme"+id).animate({ "opacity" : 1 }, 300) 
    }); 
} 

アニメーションjQueryは正しい速度で動作します。 forループの内部では、すぐに4倍速で点滅します...

お手数ですが、ありがとうございます!

+1

あなたの質問はかなり不明です。どのアニメーションを「速すぎる」と言いますか?更新されたアイテムを同時にフラッシュしたくないのですか?第2の 'setTimeout'で何を達成しようとしていましたか? –

+0

助けてくれてありがとう。つまり、アニメーションはforループ内で4倍速く実行されます。それはforループの外側で正しい速度で実行されます。私はちょうどsetTimeoutを試していた - うまくいきませんでした。ありがとう! –

答えて

1

「あまりにも速い」という意味で少し混乱していますが、アニメーションをトリガーする前に遅延を導入したいと思っています。 jQueryのdelayメソッドでこれを行うことができます。

$('selector').delay(3000).animate({...}); 
+0

速いとは、forループの外側で、アニメーションが正しい速度で動作することを意味します。しかしforループの内部では、数秒で点滅します! 私は.delayメソッドを試しましたが、色は0.4不透明度で単純に固定されていますか? ご協力ありがとうございました –

+1

申し訳ありませんが、あなたが望むものについてより多くのコードと詳細なコンテキストを投稿する必要があります。答えがあまりにもあいまいです。 – mrtsherman

+0

よろしいですか、問題の詳細をご提供ください。今のところはかなり不明です。しかし、私は、アニメーションが「高速」であるという問題は、clearIntervalメソッドがないことが原因であると考えています。 – prasvin

関連する問題