Javascript For循环与setInterval使jQuery动画太快

Javascript For Loop with setInterval makes jQuery animation too fast

本文关键字:jQuery 动画 setInterval For 循环 Javascript      更新时间:2023-09-26

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

$(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倍的速度闪烁…

请帮忙,谢谢!

我对"太快"是什么意思有点困惑,但我怀疑你想在触发动画之前引入延迟。你可以使用jQuery的delay方法。

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