如何产生延迟效果

时间:2011-05-07 13:40:08

标签: jquery loops timer delay

我有一个像这样的循环循环

$.each(requiredCities,function(keya,valb){
 $.each(requiredKeyWords,function(keya,valb){
  download(keya,valb);
 });
});

我希望每2秒调用一次这个下载功能。 问题是我无法使用setTimeout。

3 个答案:

答案 0 :(得分:1)

如果您想在下次通话前等待一段时间,请使用jQuery API中的delay方法。

如果您希望代码在一段时间后连续再次运行,请使用jQuery Timer Plugin中的everyTime方法(我认为这是基于您的评论的情况)。

答案 1 :(得分:1)

这样做:

var i=1;
$.each(requiredCities,function(keya,valb){
 $.each(requiredKeyWords,function(keya,valb){
    var timerId = setInterval(function(){
       download(keya,valb);
       clearInterval(timerId);
    }, 2000*(i++));    
 });
});

干杯

答案 2 :(得分:0)

我发现创建一个简单的函数并通过setInterval而不是setTimeout通过函数调用代码。这实际上取决于你想要做什么。

也许这会更好:

setInterval("fooBar()", 1000);

function fooBar(){
$.each(requiredCities,function(keya,valb){
 $.each(requiredKeyWords,function(keya,valb){
  download(keya,valb);
 });
});
}

不确定这是否有效,但是第一次刷我觉得没问题