Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2013, 18:53
Новичок на форуме
Отправить личное сообщение для Densofting Посмотреть профиль Найти все сообщения от Densofting
 
Регистрация: 13.02.2013
Сообщений: 4

Помогите с рекурсией!
Добрый вечер!

На странице имеются несколько скрытых блоков с классами, допустим, a1, b3, c4 и т.п.
Есть ajax-запрос, который получает от скрипта-обработчика строку вида: "a11b31c42", где a11 - класс/таймаут показа.

Получается, что а11 означает, что блок с классом а1 должен быть показан одну секунду, блок b3 - 1 секунду, блок с4 - 2 секунды.

Эти данные передаются в функцию: myFunction(x1,t1,x2,t2,x3,t3), где x1, x2, x3 - классы блоков, а t1, t2, t3 - таймауты блоков.

Функция такая:

function myFunction(x1,t1,x2,t2,x3,t3){
				
    $(x1).fadeIn(t1*500,function(){
			
        $(x1).fadeOut(t1*500,function(){
						
             $(x2).fadeIn(t2*500,function(){
						
                 $(x2).fadeOut(t2*500,function(){
							
                     $(x3).fadeIn(t3*500,function(){
						
                          $(x3).fadeOut(t3*500,function(){

                                 myFunction(x1,t1,x2,t2,x3,t3)

                          });

                      });

                  });

             });

        });

    });

}


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

Допустим:
в первый раз было: a11b31c42
во второй: a57b31c92
в третий будет: a24b68c54

Проблема в том, что после передачи значений №2 продолжают отображаться прошлые блоки, которые приходили в значениях №1 и тут начинается каша

Пробовал удалять x1,t1,x2,t2,x3,t3 перед передачей следующих значений - не помогло.

Пробовал останавливать функцию перед передачей следующих значений - не помогло, либо делал что-то неправильно.

Не знаю как иначе реализовать подобный функционал, подскажите, пожалуйста или дайте ссылку на наводящую статью/информацию.

Последний раз редактировалось Densofting, 30.12.2013 в 18:56.
Ответить с цитированием
  #2 (permalink)  
Старый 30.12.2013, 23:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Densofting
подскажите, пожалуйста
Сделай нормальный тестовый пример... Потому как вот это
Сообщение от Densofting
после передачи значений №2 продолжают отображаться прошлые блоки, которые приходили в значениях №1
для функции мало вероятно.
Ей, что дали - с тем она и будет работать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с функцией error ajax Evhen AJAX и COMET 2 13.12.2013 11:17
Помогите с подзагрузкой v1per14 Общие вопросы Javascript 9 14.05.2013 16:53
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
Помогите разобраться с рекурсией noname1990 Общие вопросы Javascript 5 30.05.2012 11:47
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50