Tampaknya :visible
pemilih jQuery tidak berfungsi untuk beberapa elemen sebaris di Chrome. Solusinya adalah menambahkan gaya tampilan, suka "block"
atau "inline-block"
untuk membuatnya berfungsi.
Perhatikan juga bahwa jQuery memiliki definisi yang agak berbeda tentang apa yang terlihat daripada banyak pengembang:
Elemen dianggap terlihat jika mereka menggunakan ruang dalam dokumen.
Elemen yang terlihat memiliki lebar atau tinggi yang lebih besar dari nol.
Dengan kata lain, suatu elemen harus memiliki lebar dan tinggi yang tidak nol untuk mengkonsumsi ruang dan terlihat.
Elemen dengan visibility: hidden
atau opacity: 0
dianggap terlihat, karena masih mengkonsumsi ruang dalam tata letak.
Di sisi lain, bahkan jika visibility
itu diatur ke hidden
atau opacity adalah nol, itu masih :visible
ke jQuery karena mengkonsumsi ruang, yang dapat membingungkan ketika CSS secara eksplisit mengatakan visibilitasnya disembunyikan.
Elemen yang tidak ada dalam dokumen dianggap tersembunyi; jQuery tidak memiliki cara untuk mengetahui apakah mereka akan terlihat ketika ditambahkan ke dokumen karena itu tergantung pada gaya yang berlaku.
Semua elemen opsi dianggap tersembunyi, apa pun kondisinya.
Selama animasi yang menyembunyikan elemen, elemen tersebut dianggap terlihat sampai akhir animasi. Selama animasi untuk menunjukkan elemen, elemen dianggap terlihat pada awal animasi.
Cara mudah untuk melihatnya, adalah bahwa jika Anda dapat melihat elemen di layar, bahkan jika Anda tidak dapat melihat kontennya, itu transparan dll., Itu terlihat, yaitu itu memakan ruang.
Saya membersihkan sedikit markup Anda dan menambahkan gaya tampilan ( yaitu mengatur tampilan elemen ke "blok" dll ), dan ini berfungsi untuk saya:
BIOLA
Referensi API resmi untuk :visible
Pada jQuery 3, definisi :visible
telah sedikit berubah
jQuery 3 sedikit mengubah arti :visible
(dan karenanya
:hidden
).
Dimulai dengan versi ini, elemen akan dipertimbangkan
:visible
jika mereka memiliki kotak tata letak, termasuk yang memiliki lebar nol dan / atau tinggi. Misalnya, br
elemen dan elemen sebaris tanpa konten akan dipilih oleh :visible
pemilih.