Twitter Bootstrap предоставляет классы для переключения контента, см. Https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Я совершенно новичок в jQuery, и после прочтения их документов я пришел к другому решению, чтобы объединить Twitter Bootstrap + jQuery.
Во-первых, решение «скрыть» и «показать» элемент (класс wsis-collapse) при нажатии на другой элемент (класс wsis-toggle) заключается в использовании .toggle .
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle();
});
});
Вы уже скрыли элемент .wsis-collapseс помощью класса Twitter Bootstrap (V3) .hidden:
.hidden {
display: none !important;
visibility: hidden !important;
}
Когда вы нажимаете .wsis-toggle, jQuery добавляет встроенный стиль:
display: block
Из-за !importantвстроенной загрузки Twitter этот встроенный стиль не действует, поэтому нам нужно удалить .hiddenкласс, но я не буду рекомендовать .removeClassэто! Потому что, когда jQuery снова собирается что-то скрывать, он также добавляет встроенный стиль:
display: none
Это не то же самое, что класс .hidden Twitter Bootstrap, который также оптимизирован для AT (средства чтения с экрана). Итак, если мы хотим показать скрытый div, нам нужно избавиться от .hiddenкласса Twitter Bootstrap, чтобы мы избавились от важных утверждений, но если мы снова его скрываем, мы хотим .hiddenвернуть класс снова! Мы можем использовать [.toggleClass] [3] для этого.
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
Таким образом, вы продолжаете использовать скрытый класс каждый раз, когда содержимое скрыто.
.showКласс ТБ фактически такой же , как встроенный стиль в JQuery, как 'display: block'. Но если .showкласс в какой-то момент будет другим, тогда вы просто добавите и этот класс:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});