[英]Accordion with Bootstrap 3
我正在尝试通过Bootstrap Collapse
制作手风琴。 我有这个HTML
:
<ul id="ul">
<li>
<div class="first">
<button>
<i class="fa fa-caret-down" aria-hidden="true"></i>
</button>
<a href="#">Name</a>
</div>
<ul class="collapse">
<li>
<a href="#">item 1</a>
</li>
<li>
<a href="#">item 2</a>
</li>
</ul>
</li>
</ul>
当我单击#ul > li
,它必须显示ul.collapse
。
我正在使用这个JS
:
$('#ul > li').on('click', function (e) {
$('.collapse.in').collapse('hide');
$(this).find('.collapse').collapse();
});
,但仅在打开和关闭前2次点击有效,此后不起作用。 我需要用JS
做到这一点。
试试看
$('#ul > li').on('click', function (e) {
if($('.collapse').hasClass('in')) {
$('.collapse.in').collapse('hide');
} else {
$(this).find('.collapse').collapse('show');
}
});
可以用更好的形式编写它,但这可以解决您的问题。
选项1:您可以使用jQuery中的slideToggle()
。
$('#ul > li').on('click', function(e) { $(this).find('.collapse').slideToggle(); });
.collapse { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="ul"> <li> <div class="first"> <button> <i class="fa fa-caret-down" aria-hidden="true"></i> </button> <a href="#">Ресторант Топ Мания</a> </div> <ul class="collapse"> <li> <a href="#">Обедно меню</a> </li> <li> <a href="#">Вечерно меню</a> </li> </ul> </li> </ul>
选项2:使用collapse('hide')
和collapse('show');
$('#ul > li').on('click', function(e) { $('.collapse.in').collapse('hide'); $(this).find('.collapse').collapse('show'); });
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <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> <ul id="ul"> <li> <div class="first"> <button> <i class="fa fa-caret-down" aria-hidden="true"></i> </button> <a href="#">Ресторант Топ Мания</a> </div> <ul class="collapse"> <li> <a href="#">Обедно меню</a> </li> <li> <a href="#">Вечерно меню</a> </li> </ul> </li> </ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.