一、了解ZTree
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。zTree 是开源免费的软件。
- zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载
- 采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀
- 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器
- 支持 JSON 数据
- 支持静态 和 Ajax 异步加载节点数据
- 支持任意更换皮肤 / 自定义图标(依靠css)
- 支持极其灵活的 checkbox 或 radio 选择功能
- 提供多种事件响应回调
- 灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽哟
- 在一个页面内可同时生成多个 Tree 实例
- 简单的参数配置实现 灵活多变的功能
二、使用Demo
此demo参考 http://www.treejs.cn/v3/demo.php#_602
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE> ZTree使用Demo</TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
</HEAD>
<BODY>
<h1>ZTree使用Demo</h1>
<div id="treeDemo" class="ztree"></div>
<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.excheck.js"></script>
<SCRIPT type="text/javascript">
$(function(){//在页面调用方法,不能直接调用
zTreeInit();
});
function zTreeInit(){
var zNodes =[
{ id:1, pId:0, name:"系统设置", open:true},
{ id:11, pId:1, name:"菜单管理", checked:true, open:true},
{ id:111, pId:11, name:"添加", checked:true},
{ id:112, pId:11, name:"修改", checked:true},
{ id:113, pId:11, name:"删除"},
{ id:12, pId:1, name:"角色管理"},
{ id:13, pId:1, name:"用户管理"},
{ id:14, pId:1, name:"字典配置"},
{ id:2, pId:0, name:"人员管理"},
{ id:21, pId:2, name:"人员管理"},
{ id:211, pId:21, name:"添加"},
{ id:212, pId:21, name:"修改"},
{ id:213, pId:21, name:"删除"}
];
//设置参数
var setting = {
check: {
enable: true
},
data: {
simpleData: {
enable: true
}
},
callback:{
onCheck:onCheck
}
};
var tree = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
//不选择父节点
tree.setting.check.chkboxType = { "Y" : "ps", "N" : "ps" };
// 默认展开全部节点
//tree.expandAll(true);
}
//点击结点触发的事件
function onCheck(e,treeId,treeNode){debugger
var treeObj=$.fn.zTree.getZTreeObj("treeDemo");
var nodes=treeObj.getCheckedNodes(true);
$.each(nodes, function(k, v){
console.log("id="+ v.id +";name="+ v.name); //获取选中节点的值
});
}
</SCRIPT>
</BODY>
</HTML>