Вы не очень ясно поняли в своем вопросе, чего именно вы хотите ждать.Я предполагаю, что вы хотите дождаться завершения каждой анимации, прежде чем переходить к следующей.
var pipe = $.Deferred().resolve();
for(var k = 0; k < animations.length; k++)
{
pipe = pipe.pipe(function()
{
return $('element').animate({
// animate whatever you want
}, 300);
});
}
Вот демонстрационная версия: http://jsfiddle.net/ZyS6c/
Если вы хотите затемзапустите некоторый код после завершения всех анимаций, поместите его в done
функцию:
pipe.done(function()
{
// Put your code here...
});
... и вот скрипка: http://jsfiddle.net/ZyS6c/1/
Если выВы не заинтересованы в цепочке анимаций (вы хотите, чтобы они выполнялись асинхронно), и хотите запускать некоторый код только после завершения всех анимаций, используйте это:
var deferreds = [];
for(var k = 0; k < animations.length; k++)
{
deferreds.push(
$('element').animate({
// animate whatever you want
}, 300)
);
}
$.when.apply($, deferreds).done(function()
{
// Put your code here...
});
... и, наконец, вотскрипка для этого: http://jsfiddle.net/pdDME/