js树控件使用及功能实现

本文介绍如何在HTML文档中使用jQuery Treeview插件创建权限管理界面,包括必要的文件引入、JS功能实现及Struts标签遍历权限列表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用treeview之前,html文档中需要包含几个jquery.js、jquery.treeview.js、jquery.treeview.css几个文件。jquery.js的引用必须在jquery.treeview.js之前。
导入jquery.treeview.js, jquery.treeview.css, 并在页面中引用
js功能实现:

<script type="text/javascript">
       $(function(){
           $("#root").treeview();

           //给所有的权限复选框添加事件
           $("[name=privilegeIds]").click(function () {

               //自己选中或者取消时,把所有下级权限也同时选中或者取消
               $(this).siblings("ul").find("input").attr("checked", this.checked);

               //当选中一个权限时,也要同时选中所有的直系上级权限
               if(this.checked){
                   $(this).parents("li").children("input").attr("checked", true);
               }
               // 当取消一个权限时,同级没有选中的权限了,就也取消他的上级权限,再向上也这样做。
               else{
                   if( $(this).parent().siblings("li").children("input:checked").size() == 0 ){
                       $(this).parent().parent().siblings("input").attr("checked", false);
                       
                       var start = $(this).parent().parent();
                       if( start.parent().siblings("li").children("input:checked").size() == 0 ){
                           start.parent().parent().siblings("input").attr("checked", false);
                       }
                   }
               }
           })
       })
    </script>

topPrivilegeList 为数据库中查询到的顶级权限列表,用于遍历。

<ul id="root">
        <%--第一级显示--%>
    <s:iterator value="#topPrivilegeList">
        <li>
            <input type="checkbox" name="privilegeIds" value="${id}" id="cb_${id}" <s:property value="%{id in privilegeIds ? 'checked' : ''}"/>/>
            <label for="cb_${id}"><span class="folder">${name}</span></label>
                <%--第二级显示--%>
            <ul>
                <s:iterator value="children">
                    <li>
                        <input type="checkbox" name="privilegeIds" value="${id}" id="cb_${id}" <s:property value="%{id in privilegeIds ? 'checked' : ''}"/>/>
                        <label for="cb_${id}"><span class="folder">${name}</span></label>
                            <%--第三级显示--%>
                        <ul>
                            <s:iterator value="children">
                                <li>
                                    <input type="checkbox" name="privilegeIds" value="${id}" id="cb_${id}" <s:property value="%{id in privilegeIds ? 'checked' : ''}"/>/>
                                    <label for="cb_${id}"><span class="folder">${name}</span></label>
                                </li>
                            </s:iterator>
                        </ul>
                    </li>
                </s:iterator>
            </ul>
        </li>
    </s:iterator>
</ul>

文中js代码是模仿网上一老师写的,个人js功底太烂,感觉这段js对jquery的选择器,筛选.查找的方法运用的比较有意思,故积累下来,以便日后学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值