как произвести эффект задержки - PullRequest
1 голос
/ 07 мая 2011

У меня есть цикл с таким циклом

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

Я хочу, чтобы эта функция загрузки вызывалась каждые 2 секунды. Проблема в том, что я не могу использовать setTimeout.

Ответы [ 3 ]

1 голос
/ 07 мая 2011

Сделайте это:

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

Приветствия

1 голос
/ 07 мая 2011

Используйте метод delay из jQuery API , если хотите подождать некоторое время до следующего вызова.

Используйте everyTime метод из jQuery Timer Plugin , если вы хотите, чтобы ваш код снова работал непрерывно через некоторое время (я думаю, это ваш случай, основанный на вашем комментарии).

0 голосов
/ 07 мая 2011

Я считаю, что создание простой функции и вызов кода через функцию через setInterval вместо setTimeout Это действительно зависит от того, что вы пытаетесь сделать.

возможно, это будет работать лучше:

setInterval("fooBar()", 1000);

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

не уверен, что это работает, но сначала я думаю, что все будет хорошо

...