jQuery FadeOut сразу много div

Я пытаюсь одновременно вывести несколько div и исчезнуть в одном div после завершения. Вот код:

if($(this).attr("id")==="benefits-button"){

    $("#solar-about, #home-page, #process-page, #financing-page, #vendors-page, #consump-info-page, #smart-page, #wind-page, #about-page").fadeOut(750, function() {
         $("#benefits-page").fadeIn(750);
    });
    }

Когда в селекторе есть несколько элементов div, fadeOut и fadeIn происходят одновременно.

Вопрос: как получить постепенное появление после постепенного исчезновения?

Спасибо


person Vinny    schedule 22.04.2012    source источник
comment
Так.. в чем вопрос?   -  person Marc    schedule 23.04.2012
comment
почему бы не использовать class вместо слишком большого количества id?   -  person undefined    schedule 23.04.2012
comment
@Raminson, ваш комментарий на самом деле является ответом ™.   -  person Roko C. Buljan    schedule 23.04.2012
comment
@Marc: A не работает. А* делает. Подразумеваемый вопрос, вероятно, заключается в том, почему A не работает, если работает A*, и как мне заставить его работать так же?   -  person Armatus    schedule 23.04.2012
comment
По сути, я пытаюсь одновременно вывести несколько div и исчезнуть в одном div после завершения. Приведенный выше код будет исчезать по мере исчезновения   -  person Vinny    schedule 23.04.2012
comment
Вы пытались использовать .stop() до .fadeOut( ?   -  person Roko C. Buljan    schedule 23.04.2012


Ответы (1)


$("#benefits-page").fadeIn(750);

работает сразу, потому что он начинает работать, когда анимация затухания первого элемента (#solar-about в вашем примере) завершена.

Если вы хотите дождаться завершения всех анимаций, вы можете использовать .promise(), например:

$("#solar-about, #home-page, #process-page, #financing-page, #vendors-page, #consump-info-page, #smart-page, #wind-page, #about-page").fadeOut(750).promise().done(function() {
     $("#benefits-page").fadeIn(750);
});

ДЕМО

person Okan Kocyigit    schedule 22.04.2012