使用setInterval的Javascript For循环使得jQuery动画太快了

时间:2011-12-28 04:17:58

标签: javascript jquery for-loop

我有一个setInterval函数,它调用for循环,遍历我页面上的每个HTML文本项。如果有文本更新(使用AJAX检查),则html文本会以flashfunction()闪烁。

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

这适用于检查更新。但是如果有更新,动画的触发速度太快(大约是OUT循环for 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 个答案:

答案 0 :(得分:1)

我对'太快'意味着什么感到困惑,但我怀疑你想在触发动画之前引入延迟。你可以用jQuery的delay方法做到这一点。

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