Görünüşe göre jQuery'nin :visible
seçici Chrome'daki bazı satır içi öğeler için çalışmıyor. Çözüm, gibi "block"
veya görüntülemek için bir ekran stili eklemektir "inline-block"
.
Ayrıca, jQuery'nin, birçok geliştiriciden neyin görülebildiğinin biraz farklı bir tanımına sahip olduğunu unutmayın:
Öğeler, belgedeki alanı tüketirlerse görünür kabul edilir.
Görünür öğeler sıfırdan büyük bir genişliğe veya yüksekliğe sahiptir.
Başka bir deyişle, bir öğenin alanı tüketmesi ve görünür olması için sıfır olmayan bir genişliği ve yüksekliği olmalıdır.
Düzeni olan visibility: hidden
veya opacity: 0
tükettiği için, öğeleri olan veya görünür olarak kabul edilirler.
Öte yandan, visibility
ayarlanmış hidden
veya opaklık sıfır olsa bile, alan :visible
tükettiği için jQuery için hala geçerlidir , bu da CSS görünürlüğünün gizli olduğunu açıkça söylediğinde kafa karıştırıcı olabilir.
Belgede olmayan öğeler gizli kabul edilir; jQuery, geçerli stillere bağlı olduğundan bir belgeye eklendiğinde görünüp görünmeyeceklerini bilmenin bir yolu yoktur.
Seçilen seçenek ne olursa olsun tüm seçenek öğeleri gizli kabul edilir.
Bir öğeyi gizleyen animasyonlar sırasında, öğenin animasyonun sonuna kadar görünür olduğu kabul edilir. Bir öğeyi göstermek için animasyonlar sırasında, öğenin animasyonun başlangıcında görünür olduğu kabul edilir.
Bakmanın kolay yolu, öğeyi ekranda görebiliyorsanız, içeriğini göremeseniz bile, şeffaftır, vb. Görünürdür, yani yer kaplar.
İşaretlemenizi biraz temizledim ve bir ekran stili ekledim ( örneğin, öğeleri "blok" vb. Olarak ayarlama ) ve bu benim için çalışıyor:
VAKTİNİ BOŞA HARCAMAK
İçin resmi API referansı :visible
JQuery 3 itibariyle, tanımı :visible
biraz değişti.
jQuery 3, anlamını :visible
(ve dolayısıyla
:hidden
) biraz değiştirir .
Bu sürümden başlayarak :visible
, sıfır genişlik ve / veya yükseklik dahil olmak üzere herhangi bir düzen kutusu varsa öğeler dikkate alınacaktır
. Örneğin, br
içeriği olmayan öğeler ve satır içi öğeler :visible
seçici tarafından seçilecektir .