导航首页 » 技术教程 » jQuery zTree树插件简单使用教程
jQuery zTree树插件简单使用教程 100 2024-02-05   

前言

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
支持静态 和 Ajax 异步加载节点数据.
在开发中我们常需要用到树状的展示.

下载地址:zTree

静态zTree开发流程

引入资源

<link rel="stylesheet" href="http://www.gimoo.net/css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="http://www.gimoo.net/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="http://www.gimoo.net/js/jquery.ztree.core.js"></script>

html元素

<div>
 <ul id="treeDemo" class="ztree"></ul>
</div>

JS方式一-简单json数据格式

<SCRIPT type="text/javascript">
    <
    var setting = {
      data: {
        simpleData: {
          enable: true
        }
      }
    };

    var zNodes =[
      { id:1, pId:0, name:"父节点1 - 展开", open:true},
      { id:11, pId:1, name:"父节点11 - 折叠"},
      { id:111, pId:11, name:"叶子节点111"},
      { id:112, pId:11, name:"叶子节点112"},
      { id:113, pId:11, name:"叶子节点113"},
      { id:114, pId:11, name:"叶子节点114"},
      { id:12, pId:1, name:"父节点12 - 折叠"},
      { id:121, pId:12, name:"叶子节点121"},
      { id:122, pId:12, name:"叶子节点122"},
      { id:123, pId:12, name:"叶子节点123"},
      { id:124, pId:12, name:"叶子节点124"},
      { id:13, pId:1, name:"父节点13 - 没有子节点", isParent:true},
      { id:2, pId:0, name:"父节点2 - 折叠"},
      { id:21, pId:2, name:"父节点21 - 展开", open:true},
      { id:211, pId:21, name:"叶子节点211"},
      { id:212, pId:21, name:"叶子节点212"},
      { id:213, pId:21, name:"叶子节点213"},
      { id:214, pId:21, name:"叶子节点214"},
      { id:22, pId:2, name:"父节点22 - 折叠"},
      { id:221, pId:22, name:"叶子节点221"},
      { id:222, pId:22, name:"叶子节点222"},
      { id:223, pId:22, name:"叶子节点223"},
      { id:224, pId:22, name:"叶子节点224"},
      { id:23, pId:2, name:"父节点23 - 折叠"},
      { id:231, pId:23, name:"叶子节点231"},
      { id:232, pId:23, name:"叶子节点232"},
      { id:233, pId:23, name:"叶子节点233"},
      { id:234, pId:23, name:"叶子节点234"},
      { id:3, pId:0, name:"父节点3 - 没有子节点", isParent:true}
    ];

    $(document).ready(function(){
      $.fn.zTree.init($("#treeDemo"), setting, zNodes);
    });
    //-->
  </SCRIPT>

JS方式二-标准json数据格式

<SCRIPT type="text/javascript">
    <
    var setting = { };

    var zNodes =[
      { name:"父节点1 - 展开", open:true,
        children: [
          { name:"父节点11 - 折叠",
            children: [
              { name:"叶子节点111"},
              { name:"叶子节点112"},
              { name:"叶子节点113"},
              { name:"叶子节点114"}
            ]},
          { name:"父节点12 - 折叠",
            children: [
              { name:"叶子节点121"},
              { name:"叶子节点122"},
              { name:"叶子节点123"},
              { name:"叶子节点124"}
            ]},
          { name:"父节点13 - 没有子节点", isParent:true}
        ]},
      { name:"父节点2 - 折叠",
        children: [
          { name:"父节点21 - 展开", open:true,
            children: [
              { name:"叶子节点211"},
              { name:"叶子节点212"},
              { name:"叶子节点213"},
              { name:"叶子节点214"}
            ]},
          { name:"父节点22 - 折叠",
            children: [
              { name:"叶子节点221"},
              { name:"叶子节点222"},
              { name:"叶子节点223"},
              { name:"叶子节点224"}
            ]},
          { name:"父节点23 - 折叠",
            children: [
              { name:"叶子节点231"},
              { name:"叶子节点232"},
              { name:"叶子节点233"},
              { name:"叶子节点234"}
            ]}
        ]},
      { name:"父节点3 - 没有子节点", isParent:true}

    ];

    $(document).ready(function(){
      $.fn.zTree.init($("#treeDemo"), setting, zNodes);
    });
    //-->
  </SCRIPT>

异步zTree加载

前面的配置相同,在此不再阐述.主要是js不同.

异步JS

var setting = {
  //可勾选
  check: {
      enable: true
    },
  data : {
    simpleData : {
      enable : true
    }
  }
};

  function initTree(){
    var payFreq = $("#payFreq").val();
    var fyType = $('#fyType').val();
    var setHzType = $('#setHzType').val();

    $.ajax({
      url : "/demo/initTree",
      data : {payFreq:payFreq,
          fyType:fyType,
          setHzType:setHzType
      },
      success: function(object){
        var nodes = "";
        //拼接simple格式的json字符串
        $.each(object.data, function(i,item) {
         nodes+="{id:'"+item.id+"', pId:'"+item.pid+"', name:'"+item.name+"', isParent:'"+item.isParent+"'},";
        });
        var zNodes = "["+nodes+"]";
        var json = eval('(' + zNodes + ')'); 
        //console.log(json);
        zTreeInit(json);
      }
    });

  }
  /* 初始化树 */
  function zTreeInit(json) {
    $.fn.zTree.init($("#treeDemo"), setting, json);
    var zTree = $.fn.zTree.getZTreeObj("treeDemo");
    //全部展开
    zTree.expandAll(true);
    //Y代表勾选时,N代表取消勾选 p代表父节点,s代表字节点
    setting.check.chkboxType = { "Y" : "ps", "N" : "ps" };

  }

java代码

Controller层

@RequestMapping("initTree")
  @ResponseBody
  public DataMessage initTree(String setHzType,String payFreq,String fyType){
    params.put("setHzType", setHzType);
    params.put("fyType", fyType);
    params.put("fkmattr_xt", fkmattr_xt);
    //获取treeinfo列表
    List<TreeInfo> treeInfos = feeTransferService.initTree(params);
    return DataMessage.successData(treeInfos);
  }

tree实体类

public class TreeInfo {

  private String id;
  private String pid;
  private String name;
  private String isParent;
  }

说明

更多实例可以参看zTree中文文档
或参见zTree GitHub 里面更多的示例和说明。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持绿夏网。



!!!站长长期在线接!!!

网站、小程序:定制开发/二次开发/仿制开发等

各种疑难杂症解决/定制接口/定制采集等

站长微信:lxwl520520

站长QQ:1737366103