Twitter Bootstrap zapewnia klasy do przełączania treści, patrz https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Jestem zupełnie nowy w jQuery, a po przeczytaniu ich dokumentacji znalazłem inne rozwiązanie, aby połączyć Twitter Bootstrap + jQuery.
Po pierwsze, rozwiązaniem „ukrywania” i „pokazywania” elementu (klasa wsis-collapse) po kliknięciu innego elementu (klasa wsis-toggle) jest użycie .toggle .
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle();
});
});
Element .wsis-collapsezostał już ukryty za pomocą klasy Twitter Bootstrap (V3) .hiddenrównież:
.hidden {
display: none !important;
visibility: hidden !important;
}
Po kliknięciu .wsis-togglejQuery dodaje styl wbudowany:
display: block
Ze względu na !importantTwitter Bootstrap ten wbudowany styl nie ma żadnego efektu, więc musimy usunąć .hiddenklasę, ale nie polecam .removeClasstego! Ponieważ gdy jQuery znowu coś ukryje, dodaje również styl wbudowany:
display: none
To nie to samo co .hidden klasa Twitter Bootstrap, który jest zoptymalizowany również dla AT (czytników ekranu). Tak więc, jeśli chcemy pokazać ukryty div, musimy pozbyć się .hiddenklasy Bootstrap na Twitterze, więc pozbywamy się ważnych instrukcji, ale jeśli ponownie to ukryjemy, chcemy .hiddenponownie odzyskać klasę! Możemy do tego użyć [.toggleClass] [3].
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
W ten sposób używasz ukrytej klasy za każdym razem, gdy treść jest ukryta.
.showKlasa w TB jest właściwie taka sama jak styl wbudowany w jQuery, zarówno 'display: block'. Ale jeśli .showklasa w którymś momencie będzie inna, po prostu dodaj również tę klasę:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});