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" );
});
});