Twitter Bootstrap fournit des classes pour basculer le contenu, voir https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Je suis complètement nouveau sur jQuery, et après avoir lu leurs documents, je suis arrivé à une autre solution pour combiner Twitter Bootstrap + jQuery.
Tout d'abord, la solution pour «masquer» et «afficher» un élément (classe wsis-collapse) lorsque vous cliquez sur un autre élément (classe wsis-toggle), consiste à utiliser .toggle .
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle();
});
});
Vous avez déjà masqué l'élément .wsis-collapse
en utilisant .hidden
également la classe Twitter Bootstrap (V3) :
.hidden {
display: none !important;
visibility: hidden !important;
}
Lorsque vous cliquez sur .wsis-toggle
, le jQuery ajoute un style en ligne:
display: block
En raison de !important
dans le Bootstrap Twitter, ce style en ligne n'a aucun effet, nous devons donc supprimer la .hidden
classe, mais je ne le recommanderai pas .removeClass
pour cela! Parce que lorsque jQuery va à nouveau cacher quelque chose, il ajoute également un style en ligne:
display: none
Ce n'est pas la même chose que la classe .hidden de Twitter Bootstrap, qui est également optimisée pour AT (lecteurs d'écran). Donc, si nous voulons montrer le div caché, nous devons nous débarrasser de la .hidden
classe de Twitter Bootstrap, donc nous nous débarrassons des déclarations importantes, mais si nous le cachons à nouveau, nous voulons .hidden
récupérer la classe! Nous pouvons utiliser [.toggleClass] [3] pour cela.
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
De cette façon, vous continuez à utiliser la classe cachée chaque fois que le contenu est masqué.
La .show
classe en TB est en fait la même que le style en ligne de jQuery, les deux 'display: block'
. Mais si la .show
classe à un moment donné sera différente, vous ajoutez simplement cette classe également:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});