2012-04-22 73 views
6

Tôi đang cố gắng làm mờ dần nhiều div cùng một lúc và mờ dần trong một div sau khi hoàn thành. Dưới đây là mã:jQuery FadeOut nhiều div cùng một lúc

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); 
    }); 
    } 

Khi có nhiều div trong bộ chọn, fadeOut và fadeIn xảy ra cùng một lúc.

Câu hỏi: Làm cách nào để nhận fadeIn sau fadeOut?

Cảm ơn bạn

+6

So..what là câu hỏi? – Marc

+5

tại sao không sử dụng 'lớp' thay vì quá nhiều' id '? – undefined

+0

@Raminson nhận xét của bạn thực sự là Câu trả lời ™. –

Trả lời

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

đang làm việc ngay lập tức bởi vì nó bắt đầu làm việc khi các yếu tố đầu tiên (# năng lượng mặt trời về trong ví dụ của bạn) fadeOut hoạt hình được hoàn tất.

Nếu bạn muốn đợi cho đến khi tất cả các hình ảnh động được hoàn thành hơn bạn có thể sử dụng .promise(), như thế này:

$("#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); 
}); 

DEMO

+4

cảm ơn! Tôi hứa, "lời hứa()" làm thủ thuật! – Vinny