Twitter Bootstrap 提供了用于切换内容的类,请参阅https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less。
我对 jQuery 完全陌生,在阅读了他们的文档后,我找到了另一个结合 Twitter Bootstrap + jQuery 的解决方案。
首先,在单击另一个元素(wsis-toggle 类)时“隐藏”和“显示”一个元素(wsis-collapse 类)的解决方案是使用.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 Bootstrap 中,这种内联样式没有效果,所以我们需要删除这个.hidden
类,但我不建议.removeClass
这样做!因为当 jQuery 要再次隐藏某些东西时,它也会添加一个内联样式:
display: none
这与 Twitter Bootstrap 的 .hidden 类不同,后者也针对 AT 进行了优化(屏幕阅读器)。所以,如果我们要显示隐藏的 div,就需要去掉.hidden
Twitter Bootstrap 的类,所以我们去掉了重要的语句,但是如果我们再隐藏它,我们又要让这个.hidden
类回来!我们可以为此使用 [.toggleClass][3]。
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden" );
});
});
这样,每次隐藏内容时,您都可以继续使用隐藏类。
TB中的.show
类其实和jQuery的内联样式是一样的,都是'display: block'
. 但是,如果.show
在某些时候类会有所不同,那么您也只需添加这个类:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});