2011-09-11 11 views
6

Soru oldukça basittir. JQuery ile iki veya daha fazla öğe seçersem ve örneğin, bunları gizlemek için jQuery'nin fadeOut() işlevini kullanırsam, geri arama işlevi iki kez (her öğe için) çağrılır. Sadece bir geri arama almanın bir yolu var mı?jQuery ile birden çok öğeyi gizleyin ve bir geri arama alın

Bu görevi gerçekleştirmek için şu anda kullandığım kod aşağıda yapıştırılmıştır.

$('#element-1, #element-2').fadeOut(250, function() { /* Callback invoked twice. */ }); 

Benzer bir soru

( jQuery multiple animate() callback) önce nakledilmiş, ama çözüm basit bir sorun gibi görünüyor ne için oldukça karmaşık görünüyor.

cevap

16

Sen $.when[docs] (deferred objects) kullanabilirsiniz:

$.when($('#element-1, #element-2').fadeOut(250)).then(function() { 
    // do something 
}); 

DEMO

Bu afaik herhangi animasyon ile çalışır.

+0

Başka yolu var mı? o kadar etrafta dolaşıyormuş gibi görünüyor ... Ya da jQuery'de uygun bir yol olarak düşünülmeli ve sadece bu nesnelerdeki cehaletim mi? –

+0

Başka bir yolun farkında değilim ve '.animate' belgelerine de bir şey bahsetmiyor. –

İlgili konular