Twitter Bootstrap offre classi per attivare / disattivare il contenuto, consultare https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Sono completamente nuovo in jQuery e dopo aver letto i loro documenti sono arrivato a un'altra soluzione per combinare Twitter Bootstrap + jQuery.
Innanzitutto, la soluzione per "nascondere" e "mostrare" un elemento (classe wsis-collapse) quando si fa clic su un altro elemento (classe wsis-toggle), è usare .toggle .
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle();
});
});
Hai già nascosto l'elemento .wsis-collapse
utilizzando Twitter Bootstrap (V3) .hidden
anche in classe :
.hidden {
display: none !important;
visibility: hidden !important;
}
Quando fai clic su .wsis-toggle
, jQuery aggiunge uno stile in linea:
display: block
A causa del !important
Bootstrap di Twitter, questo stile in linea non ha alcun effetto, quindi dobbiamo rimuovere la .hidden
classe, ma non lo consiglierò .removeClass
per questo! Perché quando jQuery nasconderà di nuovo qualcosa, aggiunge anche uno stile in linea:
display: none
Questo non è lo stesso della classe .hidden di Twitter Bootstrap, che è ottimizzata anche per AT (screen reader). Quindi, se vogliamo mostrare il div nascosto, dobbiamo sbarazzarci della .hidden
classe di Twitter Bootstrap, quindi eliminiamo le dichiarazioni importanti, ma se lo nascondiamo di nuovo, vogliamo che la .hidden
classe torni di nuovo! Per questo possiamo usare [.toggleClass] [3].
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
In questo modo continui a utilizzare la classe nascosta ogni volta che il contenuto è nascosto.
La .show
classe in TB è in realtà la stessa dello stile inline di jQuery, entrambi 'display: block'
. Ma se la .show
classe ad un certo punto sarà diversa, allora aggiungerai semplicemente anche questa classe:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});