没有什么比睡一觉更能帮助解决问题了。
正如我在原始帖子中所怀疑的那样 - 使用带有 data-owner 属性的 tbody 元素会起作用。
所以现在主级别“拥有”一个跟随它的 tbody 元素:
<!-- MASTER ACCOUNT -->
<tr id="test1" class="pa-dt-master-account-level" data-account-level="master">
<td class="pa-dt-account-details">
<a class="pa-dt-toggle" href="#">Toggle</a><br />
Test1
</td>
</tr>
<tbody data-owner="test1">
<tr> // etc
</tbody>
javascript没有改变。
// Define our button for toggling
var button = $( "table.pa-dynamic-table a.pa-dt-toggle" );
button.click(function() {
// get the parent ID
var parentId = $(this).parents('tr').attr("id");
// get the parent account level
var accountType = $(this).parents('tr').attr("data-account-level");
console.log(parentId);
console.log(accountType);
if ($(this).hasClass("pa-dt-toggle-active")) {
$(this).removeClass('pa-dt-toggle-active');
$('[data-owner="' + parentId +'"]').hide();
} else {
$(this).addClass('pa-dt-toggle-active');
$('[data-owner="' + parentId +'"]').show();
}
});
你可以看到它在这里工作:http: //jsfiddle.net/dKpxV/2/
唯一的问题是这种方法可能不适用于比当前更多的级别。但是它确实具有保留组级别项目的打开/关闭状态的优点。
是的,使用嵌套列表肯定会容易得多..