Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2012, 05:54
Интересующийся
Отправить личное сообщение для Broken Посмотреть профиль Найти все сообщения от Broken
 
Регистрация: 19.08.2012
Сообщений: 17

Анимация массива с элементами, и вызов функции по завершению.
Допустим, есть код:

var arr = $('#someId').children('div'); 
$(arr).animate({ 'left':  '-=' +someSize + 'px'}, 500,  "swing",
	 function () {  
	   return someFunction();
	  });


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

Как вариант рассматриваю установку таймера на вызов, но данный вариант мне кажется не очень надежным.

Если кто знает заранее спасибо))
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2012, 06:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,078

Один раз прочитайте доки по jquery от начала и до конца, там не так уж много, и вы избавитесь от унылых вопросов на всю жизнь.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2012, 10:20
Аватар для LittlePony
Кандидат Javascript-наук
Отправить личное сообщение для LittlePony Посмотреть профиль Найти все сообщения от LittlePony
 
Регистрация: 19.08.2012
Сообщений: 100

А что мешает запускать анимацию один раз?
$('#someId').children('div').animate({ 'left':  '-=' +someSize + 'px'}, 500,  "swing",
     function () { 
       return someFunction()
      })


Или .done()

Последний раз редактировалось LittlePony, 30.08.2012 в 10:24.
Ответить с цитированием
  #4 (permalink)  
Старый 30.08.2012, 10:49
Интересующийся
Отправить личное сообщение для yura_remnev Посмотреть профиль Найти все сообщения от yura_remnev
 
Регистрация: 01.07.2011
Сообщений: 9

var arr = $('#someId').children('div'); 
//$(arr).animate({ 'left':  '-=' +someSize + 'px'}, 500,  "swing",
//arr у вас уже является оберткой, вы сделали его таким в первой строке, поэтому повторно оборачивать его не нужно
arr.animate({ 'left':  '-=' +someSize + 'px'}, 500,  "swing",
	 function () {
// эта функция будет вызываться для каждого элемента в обертке, а вам требуется вызвать ее только один раз
// Поэтому вам нужно определить завершение анимации на элементах, например так:
	   if (arr.is(":animated").length === 0) return someFunction();
	  });


Кстати Гугл может предложить вам несколько иных вариантов решения.
Ответить с цитированием
  #5 (permalink)  
Старый 30.08.2012, 19:56
Интересующийся
Отправить личное сообщение для yura_remnev Посмотреть профиль Найти все сообщения от yura_remnev
 
Регистрация: 01.07.2011
Сообщений: 9

Сообщение от Maxmaxmахimus Посмотреть сообщение

var $ololos = $( '.ololo' );
var i = $ololos.length;

$ololos.animate( { 'left':'-=' + someSize + 'px'}, 500, function () {
//	if ( --i )	alert( 'конец!' );
	if (! --i )	alert( 'конец!' );
} );
epic FAIL
Представляю как это обидно, ошибиться в коде с таким "четким" комментарием Тут что модераторам можно материться?
Ответить с цитированием
  #6 (permalink)  
Старый 30.08.2012, 20:35
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,078

Можно и не модераторам, главное по делу.
А ещё можно в статусе себе написать "Модератор" и никто не будет мешать.)
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной вызов функции Tmin10 jQuery 8 08.12.2011 14:19
вызов функции при смене url vvsh Events/DOM/Window 4 11.08.2011 19:01
Вызов функции (Sandr) AJAX и COMET 12 16.03.2011 10:43
Вызов функции, находящейся в другой функции ZneP Events/DOM/Window 6 24.08.2010 18:45
Вызов функции из другой функции.. ?? glutton Общие вопросы Javascript 3 21.08.2009 22:33