zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
zTree 是开源免费的软件(MIT 许可证)。所以完全免费,可以随便使用,没有任何版权问题。
zTree文档
zTree插件的优点:
- zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载
- 采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀
- 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器(亲测,IE8+, FireFox, Chrome都可以正常使用)
- 支持 JSON 数据
- 支持静态 和 Ajax 异步加载节点数据(Ajax异步加载可以使插件的初始化速度更快,同时减少流量)
- 支持任意更换皮肤 / 自定义图标(依靠css)
- 支持极其灵活的 checkbox 或 radio 选择功能
- 提供多种事件响应回调 (可以让你的树更灵活)
- 灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽哟
- 在一个页面内可同时生成多个 Tree 实例
- 简单的参数配置实现 灵活多变的功能
同时,zTree的文档也已经很强大,而且应该是中国人开发的,所以提供中文文档,还提供了中文论坛的讨论区,包括百度贴吧也会有人常驻回答问题,这样就更近一步的让你对这个插件的使用更容易,获取资料更容易。
这里就讲一下zTree的最基本应用。
首先,zTree必须的就是数据,zTree可以接受两种数据,
一种是默认的数据类型:(这一种,所有的数据结构层级都显示在上面)
- zTreeNodes =[
- {"name":"网站导航", open:true, children:[
- {"name":"google","url":"http://g.cn","target":"_blank"},
- {"name":"baidu","url":"http://baidu.com","target":"_blank"},
- {"name":"sina","url":"http://www.sina.com.cn","target":"_blank"}
- ]
- }
- ];
还有一种是使用simpleData:(这里面主要根据id,isParent和pId来进行层级判断,我个人一直在使用这个形式,对于处理数据来说,这里对后台处理起来比较方便)
- [{"id":1357,"name":"山东省","isParent":true,"pId":0},
- {"id":1358,"name":"济南市","isParent":true,"pId":1357}]
其次,我们就需要添加对应的js和css库,jQuery也是必须的:
- <linkrel="stylesheet"type="text/css"href="http://cdn.gbtags.com/ztree/3.5/zTreeStyle.css">
- <scripttype="text/javascript"src="http://cdn.gbtags.com/jquery/2.1.1/jquery.min.js"></script>
- <scripttype="text/javascript"src="http://cdn.gbtags.com/ztree/3.5/jquery.ztree.all-3.5.min.js"></script>
然后,一切就很简单,在HTML加入一个zTree的ul,class必须是zTree,必须有Id(用于以后获取zTree的对象)
- <ulclass="ztree"id="ztree"></ul>
最后,我们需要在js中写显示的setting,然后用初始化方法,对tree进行初始化
- var checkSetting ={
- check:{
- enable:true,// 默认使用checkBox形式
- chkboxType:{"Y":"ps","N":"ps"}
- },
- data:{
- simpleData:{
- enable:true// 使用simpleData
- }
- },
- view:{
- nameIsHTML:true// 如果name中需要有html处理的话,那么把这个设为true。我一般开着,更灵活一点
- }
- };
- $.fn.zTree.init($("#ztree"), checkSetting, data);
这样子一个tree就能显示出来啦。