zoukankan      html  css  js  c++  java
  • Jquery zTree实例

    zTree【简单介绍】

    zTree 是利用 JQuery 的核心代码,实现一套能完毕大部分经常使用功能的 Tree 插件
    兼容 IE、FireFox、Chrome 等浏览器
    在一个页面内可同一时候生成多个 Tree 实例
    支持 JSON 数据
    支持一次性静态生成 和 Ajax 异步载入 两种方式
    支持多种事件响应及反馈
    支持 Tree 的节点移动、编辑、删除
    支持随意更换皮肤 / 个性化图标(依靠css)
    支持极其灵活的 checkbox 或 radio 选择功能
    简单的參数配置实现 灵活多变的功能



    【官网】

    官网地址:http://www.baby666.cn/hunter/index.html

    在官网可下面载到zTree的源代码、实例和API,当中作者pdf的API写得很具体
    【部分函数和属性介绍】
    核心:zTree(setting, [zTreeNodes])

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


    核心參数:setting

    zTree 的參数配置都在这里完毕,简单的说:树的样式、事件、訪问路径等都在这里配置
    setting 举例:
    var setting = {
    showLine: true,
    checkable: true
    };
    由于參数太多,详细參数详见zTreeAPI
    核心參数:zTreeNodes
    zTree 的所有节点数据集合,採用由JSON对象组成的数据结构,简单的说:这里使用Json格式保存了树的所有信息
    zTreeNodes的格式分为两种:利用Json格式嵌套体现父子关系和Array简单格式
    1 带有父子关系的标准 zTreeNodes 举例:
    var zTreeNodes = [
    {"id":1, "name":"test1", "nodes":[
    {"id":11, "name":"test11", "nodes":[
    {"id":111, "name":"test111"}
    ]},
    {"id":12, "name":"test12"}
    ]},
    ......
    ];

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

    var treeNodes = [
    {"id":1, "pId":0, "name":"test1"},
    {"id":11, "pId":1, "name":"test11"},
    {"id":12, "pId":1, "name":"test12"},
    {"id":111, "pId":11, "name":"test111"},
    ......
    ];
    【实例一】(Java代码)
    1. 在页面引用zTree的js和css:
    <!-- ZTree树形插件 -->
    <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeStyle.css" type="text/css">
    <!-- <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeIcons.css" type="text/css"> -->
    <script type="text/javascript" src="<%=root%>/Web/common/js/jquery-ztree-2.5.min.js"></script>
    2. 在script脚本中定义setting和zTreeNodes
    var setting = {
    isSimpleData : true, //数据是否採用简单 Array 格式,默认false
    treeNodeKey : "id", //在isSimpleData格式下,当前节点id属性
    treeNodeParentKey : "pId", //在isSimpleData格式下,当前节点的父节点id属性
    showLine : true, //是否显示节点间的连线
    checkable : true //每一个节点上是否显示 CheckBox
    };
    var treeNodes = [
    {"id":1, "pId":0, "name":"test1"},
    {"id":11, "pId":1, "name":"test11"},
    {"id":12, "pId":1, "name":"test12"},
    {"id":111, "pId":11, "name":"test111"},
    ];


    3. 在进入页面时生成树结构:
    var zTree;
    $(function() {
    zTree = $("#tree").zTree(setting, treeNodes);
    });
    4. 最后查看效果:


    【实例二】(从后台获取简单格式Json数据)
    1. 后台代码封装简单格式Json数据:
    public void doGetPrivilegeTree() throws IOException{
    String s1 = "{id:1, pId:0, name:"test1" , open:true}";
    String s2 = "{id:2, pId:1, name:"test2" , open:true}";
    String s3 = "{id:3, pId:1, name:"test3" , open:true}";
    String s4 = "{id:4, pId:2, name:"test4" , open:true}";
    List<String> lstTree = new ArrayList<String>();
    lstTree.add(s1);
    lstTree.add(s2);
    lstTree.add(s3);
    lstTree.add(s4);
    //利用Json插件将Array转换成Json格式
    response.getWriter().print(JSONArray.fromObject(lstTree).toString());
    }
    2. 页面使用Ajax获取zTreeNodes数据再生成树
    var setting = {
    isSimpleData : true, //数据是否採用简单 Array 格式,默认false
    treeNodeKey : "id", //在isSimpleData格式下,当前节点id属性
    treeNodeParentKey : "pId", //在isSimpleData格式下,当前节点的父节点id属性
    showLine : true, //是否显示节点间的连线
    checkable : true //每一个节点上是否显示 CheckBox
    };
    var zTree;
    var treeNodes;
    $(function(){
    $.ajax({
    async : false,
    cache:false,
    type: 'POST',
    dataType : "json",
    url: root+"/ospm/loginInfo/doGetPrivilegeTree.action",//请求的action路径
    error: function () {//请求失败处理函数
    alert('请求失败');
    },
    success:function(data){ //请求成功后处理函数。
    alert(data);
    treeNodes = data; //把后台封装好的简单Json格式赋给treeNodes
    }
    });
    zTree = $("#tree").zTree(setting, treeNodes);
    });
    3. 最后显示效果


  • 相关阅读:
    协同过滤
    深度学习中 epoch,[batch size], iterations概念解释
    如何查看Python内置模块的实现代码
    机器学习/数据挖掘/算法岗位
    算法工程师B
    算法工程师A
    web性能测试基本性能指标
    Loadrunner11不能调用IE8解决方法大全
    抓取Android应用的log
    关于字符latin capital letter sharp s "ß"( U+1E9E)显示的问题
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4244539.html
Copyright © 2011-2022 走看看