创建具有多个级别的折叠式表格

时间:2014-09-25 17:55:06

标签: javascript html-table accordion

我试图创建一个带有多个标题的折叠表,这些标题会展开以显示多个展开的子标题。

我到目前为止的HTML:

<tbody>

<tr class="header">
  <th colspan="2">Header</th>
</tr>

<tr>
  <td>Sub-Header1</td>
  <td>sub-info</td>
  <td>sub-info</td>
  <td>sub-info</td>
</tr>
<tr>
  <td>Sub-Header2</td>
  <td>sub-info</td>
  <td>sub-info</td>
  <td>sub-info</td>
</tr>

</tbody>

这是我到目前为止的Javascript:

<script>
$('.header').click(function(){
$(this).nextUntil('.header').slideToggle(100, function(){
    });
});
</script>

到目前为止,一切似乎都在起作用,除非我展开并折叠子标题,然后尝试折叠主标题,子标题会打开。我很确定它与javascript有关,但我不确定如何解决这个问题或继续。

如果有人可以帮我解决这个问题,或者给我一个创建这个手风琴表的新方法,我会非常感激!

1 个答案:

答案 0 :(得分:1)

这样的事情是否有效,或者这是你想要实现的目标? JSFiddle:http://jsfiddle.net/biz79/d02rm189/1/

假设以下结构:

标题

Subheader1 IMG 一些文字 链路

Subheader2 IMG 一些文字 链路

当您点击subheader1时,信息会隐藏或显示 当您单击subheader2时,信息会隐藏或显示 当您单击标题时,信息会隐藏或显示

HTML

<table>
<tbody>

<tr class='mainheader'>
    <th>Header</th>
</tr>

<tr>
  <td class="header">Sub-Header1
    <div class="hideMe">

      <img alt ="yellowpic"  src="https://dl.dropboxusercontent.com/u/2542034/colorPicks/yellow.png">
        <p>sub-info blah blah<p>
        <a>sub-info link</a>

    </div></td>
</tr>

<tr>
  <td class="header">Sub-Header2
  <div class="hideMe">
    sub-info<br>
    sub-info<br>
    sub-info
  </div></td>
</tr>

</tbody>
</table>

JS:

$('.mainheader').on("click", function(){
  $(this).siblings()
         .slideToggle(100);
});

$('.header').on("click", function(){
  $(this).find('.hideMe')
         .slideToggle(100);
});