Вы можете использовать jQuery отложенные объекты :
var deferred = [
new $.Deferred(),
new $.Deferred(),
new $.Deferred()
];
$(div1, div2, div3).each(function(i, elem) {
$(elem).fadeOut(600, function() { deferred[i].resolve(); });
});
$.when(deferred[0], deferred[1], deferred[2]).done(function() {
$(div4, div5, div6).each(function(i, elem) {
$(elem).animation({ opacity : 1 }, 600);
});
});
Как указал @Felix в комментариях, более чистый синтаксис для $.when
будет выглядеть следующим образом:
$.when.apply(null, deferred).done(function() {
$(div4, div5, div6).each(function(i, elem) {
$(elem).animation({ opacity : 1 }, 600);
});
});