Javascript.RU

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

Остановка выполнения функции .each()
Существует некоторое меню, при клике на которое вываливается список превью фотографий с задержкой и эффектом .fadeIn() как уже обратили внимание использую jQuery.

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

У меня вопрос, можно ли как-то осуществить прерывание выполнения цикла при клике по новому разделу, например как .stop() при выполнение анимации.animate() и как это можно реализовать? Перепробовал варианты с методом .stop(), но безуспешно.

Вот моя функция

function showElement(){
	element = showSection.find("ul li");
	element.each(function(e){
		$(this).delay(50 * e).fadeIn(500);
	});
}


Собственно, спасибо за внимание.
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2013, 00:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function showElement(){
	element = showSection.find("ul li");
	Length = element.length;
  function showEl(i){
            if(i<Length){$(element[i]).fadeIn(500,function (){i++;showEl(i);});
  } showEl(0);
}

Последний раз редактировалось Deff, 06.03.2013 в 02:30.
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2013, 02:01
Интересующийся
Отправить личное сообщение для TylerDurden Посмотреть профиль Найти все сообщения от TylerDurden
 
Регистрация: 23.10.2012
Сообщений: 18

Ошибки не вываливает но фото уже не отображаются..
при том, что даже алерт в функции showEl() не отрабатывает.
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2013, 05:03
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

each выполняется настолько быстро что вы его не успеете вручную прервать
Тут видимо дело в накоплениии delay()
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2013, 10:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от TylerDurden
алерт в функции showEl() не отрабатывает.
Поправил
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2013, 22:36
Интересующийся
Отправить личное сообщение для TylerDurden Посмотреть профиль Найти все сообщения от TylerDurden
 
Регистрация: 23.10.2012
Сообщений: 18

Спасибо, но отрабатывает ещё хуже чем было)
Ответить с цитированием
  #7 (permalink)  
Старый 06.03.2013, 02:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от TylerDurden
Спасибо, но отрабатывает ещё хуже чем было)
А если без задержки ? (убрал .delay(50 * e)
Вообще не дело на ощупь подсказывать, минимальный работучий пример нужон
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановка выполнения скрипта до определенного действия пользователя. Matisumi Общие вопросы Javascript 3 28.01.2013 00:21
остановка работы функции, вне её тела Tek Общие вопросы Javascript 6 06.11.2012 01:05
Прерывание выполнения функции 0931454574 jQuery 2 10.08.2011 12:42
Остановка выполнения функции Woody jQuery 12 18.01.2011 13:00
Как дождаться полного выполнения функции? San4ezy Events/DOM/Window 13 15.11.2009 19:41