【简介】

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. vue ui组件muse-ui的使用

    安装 npm install muse-ui typeface-roboto material-design-icons vuex axios --save Muse UI 是一套 Material ...

  2. POJ 2251-Dungeon Master (三维空间求最短路径)

    Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is co ...

  3. DEV Express中Bar Manager的使用

    未排版 在barManager中可以添加多种元素,如皮肤按钮,复选框等,但是下拉菜单却给出了多个冗余的控件. 遗留问题:怎么设置Bar为大图标,查找是否存在Ribbon控件. Bar 1,       ...

  4. Android开发——GPS定位

    1.LocationManager LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题. 与LocationManager相关的两个知识点: 1.1 ...

  5. Java基础学习总结(93)——Java编码规范之代码性能及惯例

    1.避免使用包装类构造函数 按照SUN公司的说明,使用自动装箱或静态工厂方法比使用new一个对象快3到4倍,该规则可以用在valueOf或其它静态工厂的调用中(如:Short.Integer, Lon ...

  6. 深刻理解下js的prototype

    参考 http://aralejs.org/class/docs/competitors.html, http://www.iteye.com/topic/248933,http://www.cnbl ...

  7. Leetcode 222.完全二叉树的节点个数

    完全二叉树的节点个数 给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最 ...

  8. hihocoder 1425What a Beautiful Lake(实验专用)

    Problem D. What a Beautiful Lake Description Weiming Lake, also named "Un-named Lake", is ...

  9. hdu1588:Gauss Fibonacci

    对每个0<=i<n求f(g(i))的和,其中f(x)为斐波那契数列第x项,g(i)=k*i+b,k,b,n给定,模数给定. 斐波那契数有一种用矩阵乘法求的方法,这个矩阵A自己写,令F[i] ...

  10. 《TCP/IP详解卷1:协议》——第6章 ICMP:Internet控制报文协议(转载)

    1.引言 ICMP被认为是IP层的一个组成部分,它传递差错报文以及其他需要注意的信息.ICMP报文通常被IP层或更高层协议(TCP或UDP)使用.一些ICMP报文把差错报文返回给用户进程. ICMP报 ...