Twitter Bootstrap proporciona clases para alternar contenido, consulte https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Soy completamente nuevo en jQuery, y después de leer sus documentos, encontré otra solución para combinar Twitter Bootstrap + jQuery.
Primero, la solución para 'ocultar' y 'mostrar' un elemento (clase wsis-collapse) al hacer clic en otro elemento (clase wsis-toggle), es usar .toggle .
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle();
});
});
Ya ha ocultado el elemento .wsis-collapseutilizando la clase Twitter Bootstrap (V3) .hiddentambién:
.hidden {
display: none !important;
visibility: hidden !important;
}
Cuando hace clic en .wsis-toggle, jQuery agrega un estilo en línea:
display: block
Debido a que !importanten Twitter Bootstrap, este estilo en línea no tiene ningún efecto, por lo que debemos eliminar la .hiddenclase, ¡pero no lo recomendaré .removeClasspara esto! Porque cuando jQuery va a ocultar algo nuevamente, también agrega un estilo en línea:
display: none
Esto no es lo mismo que la clase .hidden de Twitter Bootstrap, que también está optimizada para AT (lectores de pantalla). Entonces, si queremos mostrar el div oculto, debemos deshacernos de la .hiddenclase de Twitter Bootstrap, por lo que nos deshacemos de las declaraciones importantes, pero si lo ocultamos nuevamente, ¡queremos .hiddenrecuperar la clase nuevamente! Podemos usar [.toggleClass] [3] para esto.
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
De esta manera, sigue usando la clase oculta cada vez que se oculta el contenido.
La .showclase en TB es en realidad la misma que el estilo en línea de jQuery, ambos 'display: block'. Pero si la .showclase en algún momento será diferente, entonces simplemente agrega esta clase también:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});