2011-12-28 55 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