前端树形图 -- zTree -- jQuery 树插件
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也是必须的:
<link rel="stylesheet" type="text/css" href="http://cdn.gbtags.com/ztree/3.5/zTreeStyle.css">
<script type="text/javascript" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://cdn.gbtags.com/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://cdn.gbtags.com/ztree/3.5/jquery.ztree.all-3.5.min.js"></script>
然后,一切就很简单,在HTML加入一个zTree的ul,class必须是zTree,必须有Id(用于以后获取zTree的对象)
<ul class="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就能显示出来啦。
在提供一下radio的setting和只能查看的setting:
var radiocheckSetting =
{
check: {
enable: true,
chkboxType: { "Y": "ps", "N": "ps" },
chkStyle: "radio",
radioType: "all" // "level"
},
data: {
simpleData: {
enable: true
}
},
view: {
nameIsHTML: true
}
};
var showSetting =
{
check: {
enable: false,
chkboxType: { "Y": "ps", "N": "ps" }
},
data: {
simpleData: {
enable: true
}
},
view:{
showIcon:false,
nameIsHTML: true
}
};
在线调试运行地址:http://www.gbtags.com/gb/rtreplayerpreview/1090.htm
共同学习,写下你的评论
评论加载中...
作者其他优质文章