我想展示和隐藏一个 div
,但默认情况下它应该是隐藏状态,并且能够在单击后显示和隐藏。这是我编写的代码:
<a class="button" onclick="$('#target').toggle();">
<i class="fa fa-level-down"></i>
</a>
<div id="target">
Hello world...
</div>
我想展示和隐藏一个 div
,但默认情况下它应该是隐藏状态,并且能够在单击后显示和隐藏。这是我编写的代码:
<a class="button" onclick="$('#target').toggle();">
<i class="fa fa-level-down"></i>
</a>
<div id="target">
Hello world...
</div>
在这里,我提出了一种仅使用内置功能的Bootstrap框架的方法。
div
具有 ID。data-toggle="collapse"
,以指示 Bootstrap 向此标记添加适当的切换脚本。这是一个代码示例,可以直接复制粘贴到已包含 Bootstrap 框架(版本为 3.4.1)的页面中:
<a href="#Foo" class="btn btn-default" data-toggle="collapse">Toggle Foo</a>
<button href="#Bar" class="btn btn-default" data-toggle="collapse">Toggle Bar</button>
<div id="Foo" class="collapse">
This div (Foo) is hidden by default
</div>
<div id="Bar" class="collapse in">
This div (Bar) is shown by default and can toggle
</div>
只需将水加入到 <div>
中 style="display:none";
我说的是 Fiddles:http://jsfiddle.net/krY56/13/
jQuery:
function toggler(divId) {
$("#" + divId).toggle();
}
建议使用CSS类.hidden
.hidden {
display:none;
}
display:none !important
,这个设置不会被jQuery.toggle()
设置的内联display:block
所覆盖。 - ch1pn3ss尝试这个:
<button class="button" onclick="$('#target').toggle();">
Show/Hide
</button>
<div id="target" style="display: none">
Hide show.....
</div>
我意识到这个问题有点过时了,因为它在谷歌搜索中显示出类似的问题,所以我想在@CowWarrior的答案基础上再详细介绍一下。我正在寻找一个类似的解决方案,在搜寻无数的SO问题/答案和Bootstrap文档后,解决方案非常简单。同样,这将使用内置的Bootstrap collapse
类来显示/隐藏div并使用Bootstrap的“折叠事件”。
我的发现是,使用Bootstrap手风琴很容易做到,但大多数情况下,即使所需功能“有点”类似于手风琴,但它在某种程度上与手风琴不同,人们希望基于,例如,在navbar
上的菜单按钮上显示或隐藏<div>
。以下是一个简单的解决方案。锚标签(<a>
)可以是导航栏项目,并且根据折叠事件,相应的div将替换现有的div。它在CodeSnippet中看起来有点凌乱,但它非常接近实现功能-
JavaScript所做的就是使用
$(".main-container.collapse").not($(this)).collapse('hide');
使所有其他<div>
隐藏,通过检查Collapse事件shown.bs.collapse
显示加载的<div>
。这是Bootstrap关于Collapse Event的文档。
注意:main-container
只是一个自定义类。
这就是它-
$(".main-container.collapse").on('shown.bs.collapse', function () {
//when a collapsed div is shown hide all other collapsible divs that are visible
$(".main-container.collapse").not($(this)).collapse('hide');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<a href="#Foo" class="btn btn-default" data-toggle="collapse">Toggle Foo</a>
<a href="#Bar" class="btn btn-default" data-toggle="collapse">Toggle Bar</a>
<div id="Bar" class="main-container collapse in">
This div (#Bar) is shown by default and can toggle
</div>
<div id="Foo" class="main-container collapse">
This div (#Foo) is hidden by default
</div>
data-target="#id-of-element-to-toggle"
替换href
属性。 这在使用Bootstrap创建手风琴时特别有用,因为你想让整个元素可点击而不只是一个链接。https://jsfiddle.net/clDjs/L8Lef3cx/1/ - clD<div>
,并仅显示单击的<div>
? - Shivendra