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" );
});
});
这样,您每次隐藏内容时都继续使用隐藏的类。
.show
TB中的类实际上与jQuery的内联样式相同,都为'display: block'
。但是,如果.show
某个时候的类有所不同,那么您也只需添加该类:
jQuery(document).ready(function() {
jQuery(".wsis-toggle").click(function(){
jQuery(".wsis-collapse").toggle().toggleClass( "hidden show" );
});
});