效果来源
X-admin:http://x.xuebingsi.com/
是一款依赖于 layui 的一款网站后台模板
素材
<link rel="stylesheet" href="/layui/css/font.css">
<style>
.x-show {
cursor: pointer;
}
.layui-icon {
font-family: layui-icon!important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</style>
HTML
{volist name="list" id="vo"}
<tr cate-id='{$vo.id}' fid='0'>
<td><div class="ckbox ckbox-primary"><input type="checkbox" id="checkbox{$vo.id}" name="checkid[]" value="{$vo.id}" /><label for="checkbox{$vo.id}">{$vo.id}</label></div></td>
<td>{notempty name="vo.child"}
<i class="layui-icon x-show" status='true'></i>
{/notempty}
{$vo.title}</td>
<td>{$vo.sort||renew_field=$vo.id,'sort'}</td>
<td>{$vo.status|show_status=$vo.id}</td>
<td>{$vo.create_time}</td>
<td>{$vo.update_time}</td>
<td class="text-right">
{$vo.id|show_operate='update','编 辑'}
{$vo.id|show_operate='delete','删 除'}
</td>
</tr>
{foreach $vo.child as $cvo}
<tr cate-id='{$cvo.id}' fid='{$vo.id}'>
<td><div class="ckbox ckbox-primary"><input type="checkbox" id="checkbox{$cvo.id}" name="checkid[]" value="{$cvo.id}" /><label for="checkbox{$cvo.id}">{$cvo.id}</label></div></td>
<td> |- {$cvo.title}</td>
<td>{$cvo.sort||renew_field=$vo.id,'sort'}</td>
<td>{$cvo.status|show_status=$cvo.id}</td>
<td>{$cvo.create_time}</td>
<td>{$cvo.update_time}</td>
<td class="text-right">
{$cvo.id|show_operate='update','编 辑'}
{$cvo.id|show_operate='delete','删 除'}
</td>
</tr>
{/foreach}
{/volist}
</tbody>
JS
<script src="__PLUGIN__/layui/layui.js"></script>
<script>
$("tbody.x-cate tr[fid!='0']").hide();
// 栏目多级显示效果
var cateIds = [];
function getCateId(cateId) {
$("tbody tr[fid="+cateId+"]").each(function(index, el) {
id = $(el).attr('cate-id');
cateIds.push(id);
getCateId(id);
});
}
$('.x-show').click(function () {
if($(this).attr('status')=='true'){
$(this).html('');
$(this).attr('status','false');
cateId = $(this).parents('tr').attr('cate-id');
$("tbody tr[fid="+cateId+"]").show();
}else{
cateIds = [];
$(this).html('');
$(this).attr('status','true');
cateId = $(this).parents('tr').attr('cate-id');
getCateId(cateId);
for (var i in cateIds) {
$("tbody tr[cate-id="+cateIds[i]+"]").hide().find('.x-show').html('').attr('status','true');
}
}
})
</script>