Có vẻ như :visible
bộ chọn của jQuery không hoạt động đối với một số thành phần nội tuyến trong Chrome. Giải pháp là thêm một kiểu hiển thị, thích "block"
hoặc "inline-block"
làm cho nó hoạt động.
Cũng lưu ý rằng jQuery có một định nghĩa hơi khác về những gì có thể nhìn thấy so với nhiều nhà phát triển:
Các yếu tố được coi là có thể nhìn thấy nếu chúng tiêu thụ không gian trong tài liệu.
Các yếu tố hữu hình có chiều rộng hoặc chiều cao lớn hơn 0.
Nói cách khác, một phần tử phải có chiều rộng và chiều cao khác không để tiêu thụ không gian và có thể nhìn thấy được.
Các yếu tố có visibility: hidden
hoặc opacity: 0
được coi là có thể nhìn thấy, vì chúng vẫn tiêu tốn không gian trong bố cục.
Mặt khác, ngay cả khi nó visibility
được đặt thành hidden
hoặc độ mờ bằng 0, nó vẫn :visible
là jQuery vì nó tiêu tốn dung lượng, điều này có thể gây nhầm lẫn khi CSS nói rõ ràng khả năng hiển thị của nó bị ẩn.
Các yếu tố không có trong tài liệu được coi là ẩn; jQuery không có cách nào để biết liệu chúng có hiển thị khi được thêm vào tài liệu hay không vì nó phụ thuộc vào các kiểu áp dụng.
Tất cả các yếu tố tùy chọn được coi là ẩn, bất kể trạng thái đã chọn của chúng.
Trong các hình ảnh động ẩn một phần tử, phần tử được coi là hiển thị cho đến khi kết thúc hình ảnh động. Trong hình ảnh động để hiển thị một phần tử, phần tử được coi là hiển thị khi bắt đầu tại hình động.
Cách dễ dàng để xem xét nó là, nếu bạn có thể nhìn thấy phần tử trên màn hình, ngay cả khi bạn không thể nhìn thấy nội dung của nó, nó trong suốt, v.v., nó hiển thị, tức là nó chiếm không gian.
Tôi đã dọn dẹp đánh dấu của bạn một chút và thêm một kiểu hiển thị ( nghĩa là đặt các phần tử hiển thị thành "chặn", v.v. ) và điều này hoạt động với tôi:
VĨ CẦM
Tham chiếu API chính thức cho :visible
Kể từ jQuery 3, định nghĩa :visible
đã thay đổi một chút
jQuery 3 sửa đổi một chút ý nghĩa của :visible
(và do đó
:hidden
).
Bắt đầu với phiên bản này, các yếu tố sẽ được xem xét
:visible
nếu chúng có bất kỳ hộp bố trí nào, bao gồm cả các hộp có chiều rộng và / hoặc chiều cao bằng không. Ví dụ: br
các phần tử và phần tử nội tuyến không có nội dung sẽ được chọn bởi :visible
bộ chọn.