2011-12-28 44 views
0

我有一個setInterval函數調用for循環,循環瀏覽我的網頁上的每個HTML文本項目。如果有文本更新(使用AJAX進行檢查),則html文本將使用flashfunction()閃爍。Javascript與循環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) 
    }); 
} 

在for循環之外,動畫jQuery以正確的速度工作。在for循環中,它快速閃爍4倍...

請幫忙,謝謝!

+1

你的問題很不清楚。你指的是什麼動畫「太快?」你不希望所有更新的項目同時閃爍嗎?你想用第二個'setTimeout'完成什麼? – 2011-12-28 04:36:12

+0

感謝您的幫助。我的意思是動畫在for循環中快速運行4倍。它在for循環之外以正確的速度運行。我只是試驗setTimeout - 沒有用。謝謝! – 2011-12-28 05:52:10

回答

1

我對'太快'的含義有點困惑,但我懷疑你想在觸發動畫之前引入一個延遲。你可以用jQuery的delay方法做到這一點。

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

快,我的意思是 - 在for循環之外,動畫以正確的速度工作。但在for循環中,它會在幾秒鐘內閃爍! 我試過.delay方法,現在顏色簡單地凍結在0.4不透明度? 感謝您的幫助 – 2011-12-28 04:39:46

+1

對不起,您需要發佈更多代碼和更多關於您想要的內容的上下文。現在回答太模棱兩可了。 – mrtsherman 2011-12-28 04:51:51

+0

是的,請提供有關您的問題的更多信息。目前尚不清楚。但我認爲動畫「快」的問題是由於缺少clearInterval方法。 – prasvin 2011-12-28 05:04:02