jquery - Bootstrap 3 折叠表格图标开关

标签 jquery twitter-bootstrap html-table accordion

我必须使用 Bootstrap 3 表,其中表行可单击并且就像 Accordion 一样。

只有一行可以“打开”。 单击折叠的行将:

  • 打开点击的折叠行
  • 关闭其他行(如果有)
  • 将图标本身从“加号”切换为“减号”
  • 将其他“减号”图标切换为“加号”(如果有)

我已经走到这一步了:

HTML:

<div class="container">
<table class="table table-bordered" id="overview-table">

        <div id="body-1">
        <tr data-toggle="collapse" data-target="#text-1" class="accordion-toggle collapsed">
          <td scope="row" class="accordion-label">
             <span class="glyphicon glyphicon-plus-sign"></span>
             <h3>Heading 1</h3>
          </td>
          <td class="checkmark-table"></td>
          <td class="checkmark-table"></td>
          <td class="checkmark-table"></td>
        </tr>
        <tr>
            <td colspan="4" class="hiddenRow">
                <div class="accordian-body collapse clearfix" id="text-1">
                  <div class="collapse-feature-list">
                    <ul>
                      <li>Lorem</li>
                      <li>Lorem</li>
                    </ul>
                  </div>
                  <div class="collapse-link">
                    <a href="#">Link #3</a>
                    <a href="#">Link #2</a>
                    <a href="#">Link #1</a>
                  </div>
                </div>
            </td>
        </tr>
      </div>

            <div id="body-2">
        <tr data-toggle="collapse" data-target="#text-2" class="accordion-toggle collapsed" aria-expanded="false">
          <td scope="row" class="accordion-label">
             <span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
             <h3>Heading 1</h3>
          </td>
          <td class="checkmark-table"></td>
          <td class="checkmark-table"></td>
          <td class="checkmark-table"></td>
        </tr>
        <tr>
            <td colspan="4" class="hiddenRow">
                <div class="accordian-body collapse clearfix" id="text-2">
                  <div class="collapse-feature-list">
                    <ul>
                      <li>Lorem</li>
                      <li>Loremr</li>
                    </ul>
                  </div>
                  <div class="collapse-link">
                    <a href="#">Link #3</a>
                    <a href="#">Link #2</a>
                    <a href="#">Link #1</a>
                  </div>
                </div>
            </td>
        </tr>
      </div>

</table>
</div>

JQUERY:

$('.collapse').on('show.bs.collapse', function () {
            $('.collapse.in').collapse('hide'); 

        });
        $('.collapse').on('shown.bs.collapse', function() {
          $(".glyphicon").addClass('glyphicon-minus-sign').removeClass('glyphicon-plus-sign');
        });

        $('.collapse').on('hidden.bs.collapse', function() {
            $(".glyphicon").addClass('glyphicon-plus-sign').removeClass('glyphicon-minus-sign');
        });

JSFIDDLE

如何选择特定行以获得上述功能?

最佳答案

更新/解决方案

我在这里找到了一个仅 CSS 的解决方案 https://stackoverflow.com/a/18568997/1437245

因为我的 .accordion-toggle 是 <tr> :before 的作用类似于另一个表格单元格并破坏布局。所以我不得不使用 .accordion-toggle td:first-child:before.accordion-toggle.collapsed td:first-child:before选择第一个单元格并将伪选择器放在前面......

工作中的 JSFIDDLE https://jsfiddle.net/DTcHh/6591/

关于jquery - Bootstrap 3 折叠表格图标开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29624285/

相关文章:

javascript - 在 Bootstrap 中更改 div 的列类

html - 将导航栏完全左对齐并分成 12 个部分

html - box-sizing : border-box causing div with padding inside td to have margins, 为什么?

HTML:IE9 标准模式在每个页面上打印 TFOOT

jquery - 为什么这个悬停动画没有停止?

javascript - 容器内的固定 div

Javascript 将行添加到 Javascript 生成的表中

css - twitter-bootstrap 中的居中形式?

javascript - Bootstrap 工具提示/弹出窗口关闭导致 HTML 元素被隐藏

jquery - 无法确定在 div 内表内的 td 上使用什么选择器