Twitter Bootstrap cung cấp các lớp để chuyển đổi nội dung, xem https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Tôi hoàn toàn mới với jQuery và sau khi đọc tài liệu của họ, tôi đã tìm đến một giải pháp khác để kết hợp Twitter Bootstrap + jQuery.
Đầu tiên, giải pháp để 'ẩn' và 'hiển thị' một phần tử (lớp wsis-sụp đổ) khi nhấp vào phần tử khác (lớp wsis-toggle), là sử dụng .toggle .
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle();
});
});
Bạn cũng đã ẩn phần tử .wsis-collapse
bằng cách sử dụng lớp Twitter Bootstrap (V3) .hidden
:
.hidden {
display: none !important;
visibility: hidden !important;
}
Khi bạn nhấp vào .wsis-toggle
, jQuery sẽ thêm một kiểu nội tuyến:
display: block
Vì !important
trong Bootstrap Twitter, kiểu nội tuyến này không có hiệu lực, vì vậy chúng tôi cần xóa .hidden
lớp, nhưng tôi sẽ không đề xuất .removeClass
cho việc này! Bởi vì khi jQuery sẽ ẩn thứ gì đó một lần nữa, nó cũng thêm một kiểu nội tuyến:
display: none
Điều này không giống với lớp .hidden của Twitter Bootstrap, cũng được tối ưu hóa cho AT (trình đọc màn hình). Vì vậy, nếu chúng tôi muốn hiển thị div ẩn, chúng tôi cần loại bỏ .hidden
lớp Twitter Bootstrap, vì vậy chúng tôi sẽ loại bỏ các tuyên bố quan trọng, nhưng nếu chúng tôi ẩn lại, chúng tôi muốn có .hidden
lại lớp! Chúng tôi có thể sử dụng [.toggleClass] [3] cho việc này.
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
Bằng cách này, bạn tiếp tục sử dụng lớp ẩn mỗi khi nội dung bị ẩn.
Cả .show
lớp trong TB thực sự giống với kiểu nội tuyến của jQuery, cả hai 'display: block'
. Nhưng nếu .show
lớp tại một thời điểm nào đó sẽ khác, thì bạn chỉ cần thêm lớp này:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});