Анимация массива с элементами, и вызов функции по завершению.
Допустим, есть код:
var arr = $('#someId').children('div'); $(arr).animate({ 'left': '-=' +someSize + 'px'}, 500, "swing", function () { return someFunction(); }); получаем дочерние элементы, которых может быть произвольное количество, и анимируем все одновременно, а по завершению запускаем некоторую функцию, все замечательно, но данная функция запускается столько, сколько было этих самых дочерних элементов, вопрос такой можно ли ограничить запуск этой функции до одного раза. Как вариант рассматриваю установку таймера на вызов, но данный вариант мне кажется не очень надежным. Если кто знает заранее спасибо)) |
Один раз прочитайте доки по jquery от начала и до конца, там не так уж много, и вы избавитесь от унылых вопросов на всю жизнь.
|
А что мешает запускать анимацию один раз?
$('#someId').children('div').animate({ 'left': '-=' +someSize + 'px'}, 500, "swing", function () { return someFunction() }) Или .done() |
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(); }); Кстати Гугл может предложить вам несколько иных вариантов решения. |
Цитата:
Представляю как это обидно, ошибиться в коде с таким "четким" комментарием:) Тут что модераторам можно материться? |
Можно и не модераторам, главное по делу.
А ещё можно в статусе себе написать "Модератор" и никто не будет мешать.) |
Часовой пояс GMT +3, время: 05:05. |