【简介】

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件

  • 兼容 IE、FireFox、Chrome 等浏览器
  • 在一个页面内可同时生成多个 Tree 实例
  • 支持 JSON 数据
  • 支持一次性静态生成 和 Ajax 异步加载 两种方式
  • 支持多种事件响应及反馈
  • 支持 Tree 的节点移动、编辑、删除
  • 支持任意更换皮肤 / 个性化图标(依靠css)
  • 支持极其灵活的 checkbox 或 radio 选择功能
  • 简单的参数配置实现 灵活多变的功能

    zTree地址:http://www.ztree.me/v3/main.php

  • https://github.com/zTree

  • 在官网能够下载到zTree的源码、实例和API,其中作者pdf的API写得非常详细(中文的哦)

    【部分函数和属性介绍】

  • 核心:zTree(setting, [zTreeNodes])

    这个函数接受一个JSON格式的数据对象setting和一个JSON格式的数据对象zTreeNodes,从而建立 Tree。

  • 核心参数:setting

    zTree 的参数配置都在这里完成,简单的说:树的样式、事件、访问路径等都在这里配置

    setting 举例:

    1. var setting = {
    2. showLine: true,
    3. checkable: true
    4. };

    因为参数太多,具体参数详见zTreeAPI

  • 核心参数:zTreeNodes

    zTree 的全部节点数据集合,采用由JSON对象组成的数据结构,简单的说:这里使用Json格式保存了树的所有信息

    zTreeNodes的格式分为两种:利用Json格式嵌套体现父子关系和Array简单格式

    ①带有父子关系的标准 zTreeNodes 举例:

    1. var zTreeNodes = [
    2. {"id":1, "name":"test1", "nodes":[
    3. {"id":11, "name":"test11", "nodes":[
    4. {"id":111, "name":"test111"}
    5. ]},
    6. {"id":12, "name":"test12"}
    7. ]},
    8. ......
    9. ];

    ②带有父子关系的简单 Array 格式(isSimpleData)的 zTreeNodes 举例:

    1. var treeNodes = [
    2. {"id":1, "pId":0, "name":"test1"},
    3. {"id":11, "pId":1, "name":"test11"},
    4. {"id":12, "pId":1, "name":"test12"},
    5. {"id":111, "pId":11, "name":"test111"},
    6. ......
    7. ];

    【实例一】(Java代码)

    ①在页面引用zTree的js和css:

    1. <!-- ZTree树形插件 -->
    2. <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeStyle.css" type="text/css">
    3. <!-- <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeIcons.css" type="text/css">  -->
    4. <script type="text/javascript" src="<%=root%>/Web/common/js/jquery-ztree-2.5.min.js"></script>

    ②在script脚本中定义setting和zTreeNodes

    1. var setting = {
    2. isSimpleData : true,              //数据是否采用简单 Array 格式,默认false
    3. treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性
    4. treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性
    5. showLine : true,                  //是否显示节点间的连线
    6. checkable : true                  //每个节点上是否显示 CheckBox
    7. };
    8. var treeNodes = [
    9. {"id":1, "pId":0, "name":"test1"},
    10. {"id":11, "pId":1, "name":"test11"},
    11. {"id":12, "pId":1, "name":"test12"},
    12. {"id":111, "pId":11, "name":"test111"},
    13. ];

    ③在进入页面时生成树结构:

    1. var zTree;
    1. $(function() {
    2. zTree = $("#tree").zTree(setting, treeNodes);
    3. });

    ④最后查看效果:

    【实例二】(从后台获取简单格式Json数据)

    ①后台代码封装简单格式Json数据:

    1. public void doGetPrivilegeTree() throws IOException{
    2. String s1 = "{id:1, pId:0, name:\"test1\" , open:true}";
    3. String s2 = "{id:2, pId:1, name:\"test2\" , open:true}";
    4. String s3 = "{id:3, pId:1, name:\"test3\" , open:true}";
    5. String s4 = "{id:4, pId:2, name:\"test4\" , open:true}";
    6. List<String> lstTree = new ArrayList<String>();
    7. lstTree.add(s1);
    8. lstTree.add(s2);
    9. lstTree.add(s3);
    10. lstTree.add(s4);
    11. //利用Json插件将Array转换成Json格式
    12. response.getWriter().print(JSONArray.fromObject(lstTree).toString());
    13. }

    ②页面使用Ajax获取zTreeNodes数据再生成树

    1. var setting = {
    2. isSimpleData : true,              //数据是否采用简单 Array 格式,默认false
    3. treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性
    4. treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性
    5. showLine : true,                  //是否显示节点间的连线
    6. checkable : true                  //每个节点上是否显示 CheckBox
    7. };
    8. var zTree;
    9. var treeNodes;
    10. $(function(){
    11. $.ajax({
    12. async : false,
    13. cache:false,
    14. type: 'POST',
    15. dataType : "json",
    16. url: root+"/ospm/loginInfo/doGetPrivilegeTree.action",//请求的action路径
    17. error: function () {//请求失败处理函数
    18. alert('请求失败');
    19. },
    20. success:function(data){ //请求成功后处理函数。
    21. alert(data);
    22. treeNodes = data;   //把后台封装好的简单Json格式赋给treeNodes
    23. }
    24. });
    25. zTree = $("#tree").zTree(setting, treeNodes);
    26. });

    ③最后显示效果

    【实例三】从后台动态获取数据,树节点提供右键菜单功能

    ①配置setting:

    1. var url = "/ospm/loginInfo/doGetPrivilegeTree.action";
    2. //zTree基本设置
    3. var setting = {
    4. async : true, //需要采用异步方式获取子节点数据,默认false
    5. asyncUrl : root + url, //当 async = true 时,设置异步获取节点的 URL 地址 ,允许接收 function 的引用
    6. asyncParam : ["id"], //提交的与节点数据相关的必需参数
    7. isSimpleData : true, //数据是否采用简单 Array 格式,默认false
    8. treeNodeKey : "id", //在isSimpleData格式下,当前节点id属性
    9. treeNodeParentKey : "parentId", //在isSimpleData格式下,当前节点的父节点id属性
    10. nameCol : "privName",            //在isSimpleData格式下,当前节点名称
    11. expandSpeed : "fast", //设置 zTree节点展开、折叠时的动画速度或取消动画(三种默认定义:"slow", "normal", "fast")或 表示动画时长的毫秒数值(如:1000)
    12. showLine : true, //是否显示节点间的连线
    13. callback : { //回调函数
    14. rightClick : zTreeOnRightClick   //右键事件
    15. }
    16. };

    ②配置鼠标右键事件,显示右键菜单的代码

    1. //显示右键菜单
    2. function showRMenu(type, x, y) {
    3. $("#rMenu ul").show();
    4. if (type=="root") {
    5. $("#m_del").hide();
    6. $("#m_check").hide();
    7. $("#m_unCheck").hide();
    8. }
    9. $("#rMenu").css({"top":y+"px", "left":x+"px", "display":"block"});
    10. }
    11. //隐藏右键菜单
    12. function hideRMenu() {
    13. $("#rMenu").hide();
    14. }
    15. //鼠标右键事件-创建右键菜单
    16. function zTreeOnRightClick(event, treeId, treeNode) {
    17. if (!treeNode) {

zTree 基本用法的更多相关文章

  1. js zTree的用法

    代码如下: <script type="text/javascript">    var reginTree = {    setting: {        view ...

  2. jQuery Ztree基本用法

    1.首先在页面上有<ul/>标签 <ul id="tree" class="ztree"></ul> 2.定义ztree的配 ...

  3. jq生成目录文件树jQuery Ztree基本用法

    转自:http://www.cnblogs.com/linjiqin/p/4547452.html 1.首先在页面上有<ul/>标签 ? 1 <ul id="tree&qu ...

  4. ztree的用法

    哎哟,好久没写什么这个虽然没人看的博客了,其实这段时间情绪非常低谷,就没有写博客了,不过我还是回来了,回到正题,在前端页面编程的时候,我们经常用到树状,用原始的树状呢,功能没有那么强大,所以这个时候 ...

  5. Ztree使用教程

    这两天项目需要写一个树形帮助,学习了我们项目组的老师的Ztree的树的写法,实现了这个帮助,下面来总结一下Ztree的用法. (也是参考的一篇csdn上的博客了) zTree 是一个依靠 jQuery ...

  6. zTree静态树与动态树的用法——(七)

    0.[简介] zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实 ...

  7. Ztree节点增加删除修改和Icheck的用法

    简介 官方文档:http://www.treejs.cn/v3/api.php zTree 是一个依靠 jQuery 实现的多功能 “树插件”, 而且拥有较好的浏览器兼容性,有着丰富的功能以及可以自定 ...

  8. zTree 用法小例

    插件地址:链接:http://pan.baidu.com/s/1jHVtyZ0 密码:7kee <select id="getTree" resultType="j ...

  9. 树 插件 ztree 的基本用法

    因业务需要 用到 ztree 插件 第一次用tree插件上手有点难度 官网 http://www.treejs.cn/v3/main.php#_zTreeInfo 第一步:初始化树,树的所有数据从后台 ...

随机推荐

  1. 第九节:pandas打印设置

    get_option() :获取系统默认设置选项: set_option() :设置系统设置选项.

  2. 【HDU 6153】A Secret (KMP)

    Problem Description Today is the birthday of SF,so VS gives two strings S1,S2 to SF as a present,whi ...

  3. [WPF自定义控件]使用WindowChrome自定义Window Style

    1. 为什么要自定义Window 对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克制不住自己想想软件更个性化,为了UI的和谐修改Window也是必要的:二来多一行的空间可 ...

  4. asp网页无法打开

    环境:Window 2003.IIS6.Framework1.1 .VS2003 一个WebForm项目里面包含一些asp网页  运行后发现asp页面无法访问 提示:无法找到该页 解决方案: 1. [ ...

  5. 【Codeforces 1051D】Bicolorings

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] dp[i][j][k]表示前i列,有j个联通块下,最后一列的状态为k的方案数 k如果为1的话,表示最后一列两个块不一样,k如果为0表示一样 枚 ...

  6. Jmeter接口测试实战-Cookies

    场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都有一个共同的特点, 有效期(expires). ...

  7. gitHub网站上常见英语翻译

    为开发者而建Built for developers GitHub is a development platform inspired by the way you work.GitHub是一个受你 ...

  8. [luoguP2129] L国的战斗续之多路出击(模拟 || 矩阵)

    传送门 1.模拟 easy #include <cstdio> #define N 500001 int n, m; int X[N], Y[N], x[N], y[N], a = 1, ...

  9. C#特性入门《详解》

    原文发布时间为:2008-11-22 -- 来源于本人的百度文章 [由搬家工具导入] <转>http://www.bccn.net/Article/net/cs/jszl/200709/6 ...

  10. input文本框的value属性在页面中不随输入的数据而变化

    今天,在做试验遇到这么一个需求: 一个input文本框,输入值后将标签传到后台,在后台解析标签,发现value仍然是初值,不是我们改变后的值. 例如: <input name="&qu ...