zTree的使用

zTree的使用

最近用到了zTree,但是之前一直没有整理过,这里做一个小Demo,方便学习和使用。

更多的参考—zTree官网—

使用前先引入JS和CSS样式

<script type="text/javascript" src="../../lib/ztree/jquery-1.4.4.min.js" ></script>
<script type="text/javascript" src="../../lib/ztree/jquery.ztree.all.min.js" ></script>
<link rel="stylesheet" href="../../lib/ztree/css/zTreeStyle/zTreeStyle.css" />

普通Ztree

<fieldset>
  <legend><h1>1-普通的zTree</h1></legend>
    <div class="zTreeDemoBackground left">
      <ul id="treeDemo" class="ztree"></ul>
</div>
<script>
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}
    ]
  },//父节点1结束
  { 
    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"}
        ]}
    ]
  },//父节点2结束
  { 
    name:"父节点3 - 没有子节点",
    isParent:true
  }
];

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

这里写图片描述

简单ZTree

<fieldset>
  <legend><h1>2-简单的zTree</h1></legend>
    <div class="zTreeDemoBackground left">
      <ul id="treeDemo2" class="ztree"></ul>
</div>
<button id="btn">得到所有的选中的节点</button>
<button id="btn2">选中一些节点</button>
<button id="btn3">选中所有的节点</button>
<button id="btn4">取消所有的节点</button>
<button id="btn5">展开所有的节点</button>
<button id="btn51">展开某个节点</button>
<button id="btn6">收起所有的节点</button>

<script>
  var setting = {
    data: {
      simpleData: {
        //true,false分别表示使用不使用简单数据模式
        enable: true,
        //节点数据中保存唯一标识的属性名称(即是ztreeDOM节点的id)
        idKey: "id",
        //节点中父ID的
        pIdKey: "pId",
        rootPId: -1 // 修正根节点
      },
      key: {
        //当后台数据只能生成 url 属性,又不想实现点击节点跳转的功能时,
        //可以直接修改此属性为其他不存在的属性名称
        url:"nourl"
      }
    },
    check:{
      enable:true,
      nocheckInherit:true
    }
  };

/* 被选中的节点json数组 */
var checkedNodes = [
  { id:112, pId:11, name:"叶子节点112"},
  { id:113, pId:11, name:"叶子节点113"},
  { id:212, pId:21, name:"叶子节点212"},
  { id:222, pId:22, name:"叶子节点222"},
  { id:233, pId:23, name:"叶子节点233"},
  { id:234, pId:23, name:"叶子节点234"}
]

/* 所有的节点json数组 */
var zNodes = [
  { id:0, pId:-1, name:"根节点 - 展开", open:true},
  { 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}
];

var ztree ;
$(document).ready(function(){
  ztree = $.fn.zTree.init($("#treeDemo2"), setting, zNodes);

  /* 得到所有的勾选的节点对象 */
  $("#btn").click(function(){
    var nodes = ztree.getCheckedNodes();//得到checkbox选中的对象
    console.log(nodes);
    console.log("------ 华丽的分割线 ------");
    // 存放所有被选中节点的数组
    var objList = new Array();
    for(var k in  nodes){
      var obj = {
        id:nodes[k].id,
        pId:nodes[k].pId,
        name:nodes[k].name,
        isParent:nodes[k].isParent
      }
      objList.push(obj)
    }
    console.log(objList);
  });

  /* 选中指定的节点 */
  $("#btn2").click(function(){
    for(let k in checkedNodes){
      // 根据参数类型和值获得指定的node节点
      let node = ztree.getNodeByParam("id", checkedNodes[k].id);
      // 选中指定的node节点对象,
      // 参数2:true/false(选中/取消)
      // 参数3:true/false(是否影响父节点联动选中)
      ztree.checkNode(node, true, true);
    }
  });


  /* 选中所有的节点 */
  $("#btn3").click(function(){
    ztree.checkAllNodes(true);
  })
  /* 取消所有的节点 */
  $("#btn4").click(function(){
    ztree.checkAllNodes(false);
  })

  /* 展开所有的节点 */
  $("#btn5").click(function(){
    ztree.expandAll(true);
  })

  /* 展开某个节点 */
  $("#btn51").click(function(){
    let node = ztree.getNodeByParam("pId",0);
    // 参数2:true/false(展开/收起)
    // 参数3:true/false(是否影响父节点联动选中)
    ztree.expandNode(node,true,true);
  })
  /* 收起所有的节点 */
  $("#btn6").click(function(){
    ztree.expandAll(false);
  })

});

</script>
</fieldset>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值