Wygląda na to, że :visible
selektor jQuery nie działa w przypadku niektórych elementów wbudowanych w Chrome. Rozwiązaniem jest dodanie stylu wyświetlania, takiego jak "block"
lub uruchomienie "inline-block"
go.
Zauważ też, że jQuery ma nieco inną definicję tego, co jest widoczne niż wielu programistów:
Elementy są uważane za widoczne, jeśli zajmują miejsce w dokumencie.
Widoczne elementy mają szerokość lub wysokość większą niż zero.
Innymi słowy, element musi mieć niezerową szerokość i wysokość, aby zajmować miejsce i być widoczny.
Elementy z visibility: hidden
lub opacity: 0
są uważane za widoczne, ponieważ nadal zajmują miejsce w układzie.
Z drugiej strony, nawet jeśli visibility
jest ustawiony na hidden
lub nieprzezroczystość wynosi zero, to nadal :visible
zajmuje jQuery, ponieważ zajmuje miejsce, co może być mylące, gdy CSS wyraźnie mówi, że jego widoczność jest ukryta.
Elementy, których nie ma w dokumencie, są uważane za ukryte; jQuery nie ma sposobu, aby wiedzieć, czy będą widoczne po dołączeniu do dokumentu, ponieważ zależy to od odpowiednich stylów.
Wszystkie elementy opcji są uważane za ukryte, niezależnie od ich wybranego stanu.
Podczas animacji, które ukrywają element, element jest uważany za widoczny do końca animacji. Podczas animacji pokazujących element element uważa się za widoczny na początku animacji.
Prostym sposobem na to jest to, że jeśli widzisz element na ekranie, nawet jeśli nie widzisz jego zawartości, jest przezroczysty itp., Jest widoczny, tj. Zajmuje miejsce.
Wyczyściłem trochę twój znacznik i dodałem styl wyświetlania ( tj. Ustawianie wyświetlania elementów na „blok” itp. ), A to działa dla mnie:
SKRZYPCE
Oficjalne odniesienie API dla :visible
Od jQuery 3 definicja :visible
nieznacznie się zmieniła
jQuery 3 nieznacznie modyfikuje znaczenie :visible
(a zatem i
:hidden
).
Począwszy od tej wersji, elementy będą brane pod uwagę,
:visible
jeśli mają jakieś pola układu, w tym te o zerowej szerokości i / lub wysokości. Na przykład selektor br
wybierze elementy i elementy wbudowane bez zawartości :visible
.