【发布时间】:2014-11-22 01:01:57
【问题描述】:
我正在尝试在数据表中添加可扩展的行。每次我有一个“主行”,然后是一个或多个“子行”,这些“子行”通过单击主行的第一个单元格来切换。
这是我的html:
<tbody>
<tr class="master">
<th rowspan="3" scope="row" class="toggle">Toggle</th>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr class="child">
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr class="child">
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr class="master">
<th rowspan="2" scope="row" class="toggle">Toggle</th>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr class="child">
<td>Column 2</td>
<td>Column 3</td>
</tr>
</tbody>
我用来隐藏子行的 jQuery 代码(通过“切换”css 类):
$(document).ready(function(){
$(".toggle").click(function() {
$(this).parent().nextUntil("tr.master").toggleClass("toggled");
});
});
还有我的 CSS:
tr.child {display:none;}
tr.child.toggled {display:table-row;}
th.toggle {cursor:pointer;}
但是,因为我希望第一个单元格也跨越“子行”,所以我必须为其添加一个“rowspan”属性。但是当子行被隐藏时,这会弄乱表格。所以我想做的是在隐藏子行时将“rowspan”属性值设置为“1”(默认),并在子行可见时恢复到其原始值。
在点击之前将属性值设置为“1”似乎很容易:
$(".toggle").attr("rowspan", "1");
但“点击时”恢复值是我无法弄清楚的。我对 jQuery 比较陌生,不熟悉检查状态。任何帮助将不胜感激!
【问题讨论】: