проблема с отложенными циклами - PullRequest
2 голосов
/ 08 сентября 2010

У меня кошмар, когда я пытаюсь заставить некоторые цитаты зацикливаться с задержкой.Я создал следующий код:

function loopquotes(){
 var items = $('.comment').size();
 var randomNum = Math.floor(Math.random()*items+1);
 $(".comment:nth-child("+randomNum+")").fadeIn('slow').delay(5000);
 $(".comment:nth-child("+randomNum+")").fadeOut('medium');
}

С задержкой он постепенно исчезает.Тем не менее, цикл продолжает цикл без использования задержки, и я получаю множество цитат на странице.Кто-нибудь может мне помочь сделать это правильно, чтобы новая цитата загружалась только после того, как старая исчезла.

Большое спасибо

David

1 Ответ

2 голосов
/ 08 сентября 2010

Вы можете снова вызвать функцию как обратный вызов, например:

function LoopQuotes(){
  var comments = $('.comment'),
      rand = Math.floor(Math.random()*comments.length+1);
  comments.eq(rand).fadeIn('slow').delay(5000).fadeOut('medium', LoopQuotes);
}

Затем просто вызывайте ее один раз при загрузке страницы, например, с помощью вызова document.ready, например:

$(LoopQuotes);

То, что это делает, это затухание в кавычке, задержка 5000 мс, затухание, затем, когда .fadeOut() завершится, снова вызовите функцию, чтобы выбрать / показать следующую кавычку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...