Речь идет не об использовании .each()
против простого цикла for
. Проблема в том, что анимации обрабатываются через тайм-ауты (управляемые jQuery). Звонки на номера .fadeIn()
и .fadeOut()
немедленно возвращаются до того, как анимация произошла.
Вы можете добавить некоторую задержку к каждому fadeIn()
, или вы можете структурировать свой код по-разному:
$("document").ready(function() {
var divs = $('.myclass'), i = 0;
function reveal() {
if (i === divs.length) return;
divs.eq(i).fadeIn(4000, function() {
divs.eq(i).fadeOut(4000, function() {
i++;
setTimeout(reveal, 0);
});
});
}
setTimeout(reveal, 0);
});