javascript - 带 Bootstrap 3 的 Accordion

标签 javascript twitter-bootstrap twitter-bootstrap-3 bootstrap-accordion

我正在尝试使用 Bootstrap Collapse 制作 Accordion 。我有这个 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');
  }
});

它可以写成更好的形式,但这会解决您的问题。

关于javascript - 带 Bootstrap 3 的 Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45642290/

相关文章:

javascript - 使用 underscore.js 处理 JSON 数据

java - 如何从 Javascript 调用 GWT java 函数?

twitter-bootstrap - 使用 jspm 安装 bootstrap v4-dev 分支

jquery - Bootstrap 轮播编号事件图标

html - 在 Bootstrap 列中垂直居中 DIV 中的内容

javascript - 如何循环嵌套的 Json 访问所有对象的相同元素?

javascript - 使用 Meteor.js + React.js 进行服务器端路由

css - 使用 Twitter Bootstrap 对齐选项卡折叠

css - 如何使用 Bootstrap 3 将所有这些都放在一行中?

css - 设置随机 bootstrap 3 标签类