小弟不才, 對于jQuery的ztree樹形菜單不了解,所以,碰到需要用樹形菜單的時候感覺真心頭大,然后參考公司源碼,把樹形菜單重新梳理,整理了下。
第一步:先在jsp頁面引入jQuery和ztree的js,CSS;
<link rel="stylesheet" href="<%=basePath%>/css/zTreeStyle.css"><script type="text/javascript" src="<%=basePath%>js/jquery-1.8.3.js"></script><script type="text/Javascript" src="<%=basePath%>/js/jquery.ztree.core-3.5.js"></script><script type="text/javascript" src="<%=basePath%>/js/jquery.ztree.excheck-3.5.js"></script><script type="text/javascript" src="<%=basePath%>/js/jquery.ztree.exedit-3.5.js"></script><script type="text/javascript" src="<%=basePath%>/js/jquery.validate.js"></script>
第二步:不要忘了添加css要用到的圖片,不然無法顯示復選框和文件夾哦;
第三步:開始編寫樹形菜單了
//設置ztree的參數配置 var setting = {check:{enable:true,nocheckInherit:true},view:{selectedMulti:false}, data:{simpleData:{enable:true}},callback:{beforeClick:function(id, node){ tree.checkNode(node, !node.checked, true, true); return false; }}};
然后是設置用戶菜單
// 用戶-菜單 var zNodes=[ <c:forEach items="${menuUserlist}" var="menu">{id:"${menu.id}", pId:"${not empty menu.parent.id?menu.parent.id:0}", name:"${not empty menu.parent.id?menu.name:'權限列表'}"}, </c:forEach>]; // 初始化樹結構 var tree = $.fn.zTree.init($("#menuTree"), setting, zNodes); // 不選擇父節點 tree.setting.check.chkboxType = { "Y" : "ps", "N" : "s" }; // 默認選擇節點 var ids = "${role.menuIds}".split(","); for(var i=0; i<ids.length; i++) { var node = tree.getNodeByParam("id", ids[i]); try{tree.checkNode(node, true, false);}catch(e){} }
最后是選擇默認打開全部節點
// 默認展開全部節點 tree.expandAll(true);
到處就基本結束了, 下面的<div>里不要忘記添加ID屬性。
自我感覺比較好用些。當然 后臺代碼要自己編寫了
新聞熱點
疑難解答