Как сделать бесконечный цикл для более чем одной функции в JQuery

0

это мой код jquery. Этот код содержит три функции. Эта три функции повторяются для цикла. Но этот код не работает должным образом. Как сделать рекурсивный вызов с тремя функциями. pid1, pid2, pid3

идентификатор тега.

     $(document).ready(function(){
     function animate() 
       {    
         $('#pid1').fadeOut(3000, function()
        {
         $(this).text('string1').fadeIn(3000);
        }); 
        animate1();
       }
     function animate1()
      {
       $('#pid2').fadeOut(3000, function()
       {
       $(this).text('string2').fadeIn(3000);
       });
       animate2();
      }
    function animate2() 
      {
       $('#pid3').fadeOut(3000, function()
       {
       $(this).text('string3').fadeIn(3000);
       });      
       animate();   
      }
   });
  • 1
    Я думаю, что вам нужно добавить больше текста к вашему вопросу - хотите ли вы, чтобы строки ожидали до следующего завершения? и так далее? взглянуть на живые обратные вызовы
  • 0
    У вас есть синтаксическая ошибка, вы можете ее исправить? Просто чтобы быть уверенным.
Показать ещё 2 комментария

2 ответа

1

Я хочу поделиться одним шаблоном здесь:

var observer = {
  list: {},
  add: function(id, item){this.list[id] = item},
  del: function(id){delete this.list[id];},
  announce: function(data){
    for(var id in this.list){
      setTimeout(function(){
        this.list[id](data);
      }, 0);
    }
  }
}

Применение:

observer.add('first', function(data){
  console.log('first', data);
})

observer.add('second', function(data){
  console.log('second', data);
})

var i = 0;
setInterval(function(){observer.announce(++i);}, 300);

Вы можете пропустить параметр данных или использовать все arguments затем объявить вам subscibers...
Этот шаблон равен тому, как работают события

Извините, что я неправильно понял вопрос...
Вот правильный код:

function foo1(){
  console.log(1);
  setTimeout(foo2, 1000);
}

function foo2(){
  console.log(2);
  setTimeout(foo1, 1000);
}

window.onload = foo1;
0
function a() {
    /* stuff */ 
}
function b() {
    /* stuff */
}

var functionArray = [a(), b()];

$.each(functionArray, function(key, value) {

/* extra stuff while looping through functions */

});
  • 2
    [a(), b()]; - не надо называть здесь а б ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню