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-collapse
został już ukryty za pomocą klasy Twitter Bootstrap (V3) .hidden
również:
.hidden {
display: none !important;
visibility: hidden !important;
}
Po kliknięciu .wsis-toggle
jQuery dodaje styl wbudowany:
display: block
Ze względu na !important
Twitter Bootstrap ten wbudowany styl nie ma żadnego efektu, więc musimy usunąć .hidden
klasę, ale nie polecam .removeClass
tego! 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ę .hidden
klasy Bootstrap na Twitterze, więc pozbywamy się ważnych instrukcji, ale jeśli ponownie to ukryjemy, chcemy .hidden
ponownie 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.
.show
Klasa w TB jest właściwie taka sama jak styl wbudowany w jQuery, zarówno 'display: block'
. Ale jeśli .show
klasa 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" );
});
});