2009-03-28 27 views
8

Adobe AIR çalışıyorum ve ben tıklandığında, bir gizli div her liste öğesi için bilgi genişletilmiş göstermek div bir listesi var - şöyle:jQuery Toggle - hangi (gizle veya show) uygulandığını bilmek için herhangi bir yol var mı?

$(this).click(function(){ 
$(this).next('div.info').toggle(); 
}); 

Bu bütünün yüksekliğini uzanır Sonuç olarak, kullanıcı, tüm div'ları genişletecek olsaydı, yan tarafta bir kaydırma çubuğu olurdu. Bunu aşmak için, pencerenin yüksekliğini ayarlamak istiyorum (ya büyüyen veya daraltma, bağlı). Kodun tümünde çalışıyorum, ancak hangi efektin (gizleme veya gösterme) uygulanacağını öğrenmek için .toggle işlevine nasıl gireceğimi anlayamıyorum. If() ifadesinin, bilgi div'unun son durumu üzerine yazılmasını ayarlamak işe yaramaz;

jQuery'de hangi .toggle uygulamasının uygulandığını bilmek için herhangi bir yol var mı? Böylece, bu değişiklikimi diğer değişikliklerimi uygulamak için kullanabilirim?

cevap

11

sonra div toggled hangi bilebilir:

var visible = $(this).next('div.info').toggle().is(":visible"); 
if(visible){ 
    alert("Hey! I've just showed up here!"); 
} 

son geçiş işlemi gösterdi eğer gerektiğini bilebilirsiniz div ya da değil.

+0

.is ('visible') etiketlerle eşleştiğinden bu işlem işe yaramaz * named * "visible". Bunun yerine ': görünür' CSS sözde seçici kullanmanız gerekir. –

+0

@mgood Bu bir yazım hatası. Şimdi düzeltildi, teşekkürler :) – Seb

+2

.toggle ('yavaş') kullanılıyorsa bu işe yaramaz. – exiang

7

Sen ile bu test edebilirsiniz: toggle bitirir

if ($(selector).is(':visible')) { 
    // do something 
} 
İlgili konular