zTree简单使用
zTree使用
zTree插件依赖JQ所以使用zTree首先引入JQ,另外zTree的点击功能,编辑功能都是单独的文件,如需使用也要引入(也可以引入全部功能的JS文件)。
引入zTree的css文件(zTreeStyle.css和demo.css)。
DOM结构如下:class="ztree"提供一些样式必须有,id作为数的唯一标识必须有,同时必须的ul元素。
<div>
<ul class="ztree" id="first_tree"></div>
</div>
zTree的数据格式
zTree在使用JSON数据时,由两种数据格式供我们使用,分别是标准数据模式和简单数据模式
标准的数据模式为:
var nodes = {name:"第一层级",children:[{name:"第二层级",id:2,childred:[{}]}],id:1}
标准的数据模式的数据是一个JSON对象,立面的name会用作显示节点的名称,children会用作第一个阶段的子节点,children里面是一个个的对象,这些对象也是第一层级的格式,层层嵌套最终形成一个数据集合用作加载tree。name和children是必须的属性,其他的属性根据我们的实际需求具体添加。
简单数据模式:
var nodes = [{name:"第一层级",id:0,pId:null},{name:"第二层级",id:1,pId:0},{name:"第一层级",id:2,pId:0}]
简单数据模式的数据是一个数组对象,数组中的每一个对象都必须包括name,id,pid,name用作显示当前的节点名称,id表示当前的节点的唯一标识可用来做关联父级节点的桥梁,pid也是用来做父子节点的桥梁的,在默认情况下如果pid为null则当前的这个对象表示是tree的顶层节点。其他的属性根据我们的实际需求可以自行添加。
zTree的数据集合中常用的属性
name:表示当前的节点名称
id:用作节点的唯一标识
pid:和id互相对应表示当前节点是哪一个节点的子节点(在简单JSON格式中使用)
childred:里面的数据表示当前数据节点的子节点(在标准JSON格式中使用)
icon:表示当前节点的图标
iconClose,iconOpen:节点在收缩/展开是的图标
noCheck:表示当前节点前面的radio/checkbox是否显示 true表示不显示
其他的属性根据我们的实际需求可以通过查看API来了解,除了zTree提供给我的属性外,我们可以在节点属性中添加任何的属性来方便我们的使用,比如我们需要使用一个remark的字段,我们就可以在节点属性添加该属性。
zTree的设置
在zTree中常用的设置属性为:data,check,callback其他的属性功能可以通过查看API来使用。
定义一个简单的设置:
var setting = {
data:{//表示tree的数据格式
simpleData:{
enable:true,//表示使用简单数据模式
idKey:"id",//设置之后id为在简单数据模式中的父子节点关联的桥梁
pidKey:"pId",//设置之后pid为在简单数据模式中的父子节点关联的桥梁和id互相对应
rootId:"null"//pid为null的表示根节点
}
},
view:{//表示tree的显示状态
selectMulti:false//表示禁止多选
},
check:{//表示tree的节点在点击时的相关设置
enable:true,//是否显示radio/checkbox
chkStyle:"checkbox",//值为checkbox或者radio表示
checkboxType:{p:"",s:""},//表示父子节点的联动效果
radioType:"level"//设置tree的分组
},
callback:{//表示tree的一些事件处理函数
onClick:handlerClick,
onCheck:handlerCheck
}
}
zTree的常用API使用
zTree所有的API都是都是由zTree的实例来调用的,所以在使用API的时候我们首先要获得我们想要操作的tree对象。
获取树对象的完成方式为:var treeObj = $.fn.zTree.getZTreeObj("tree"),参数为DOM的ID。
expandAll:展开或者折叠节点使用方式为 treeObj.expandAll(true) - >展开所有节点,设置为false为折叠所有节点。
getCheckedNodes:获得勾选的或者未勾选的节点使用方式为 treeObj.getCheckedNodes(true) - >获取所有勾选的节点,设置为false为所有未勾选的节点。
getNodeByParam:通过节点属性来获取一个节点使用方式为 treeObj.getNodeByParam("prop","value","parent"),第一个参数表示根据的属性名称,第二个参数表示属性值,第三个参数表示父级节点,
如果是在全局的范围内检索第三个参数设置为null即可。
getNodesByParam:和getNodeByParam使用方式一样,只不过getNodesByParam可以获得多个节点。
在实际开发过程中我们可以根据具体的需求去查看zTree的API文档,介绍的非常详细。
zTree的回调函数
我们定义好回调函数,在setting里面配置好即可:
function handlerClick(event,treeId,treeNode){
use treeId and treeNode to do sth……
}
每一个回调都可以接受三个参数,第一个参数表示事件,第一个参数很少使用,第二个参数表示当前的树Id我们可以用这个参数来获取tree对象,进而使用zTree的API,第三个参数表示当前的作用节点,treeNode包括当前节点的所有属性。
zTree完整示例
假如我们从服务器获取到了一个数据对象,里面包括班主任,和所有学生,班主任和学生是一个一对多的关系
原始数据如下:
var data = {
teacher:[
{id:0,name:"张老师",sex:"男"},
{id:1,name:"李老师",sex:"男"},
{id:2,name:"王老师",sex:"女"}
],
student:[
{id:0,name:"学生A",sex:"男",tId:0},
{id:1,name:"学生B",sex:"男",tId:0},
{id:2,name:"学生C",sex:"女",tId:1},
{id:3,name:"学生D",sex:"女",tId:1},
{id:4,name:"学生E",sex:"男",tId:2},
{id:5,name:"学生F",sex:"女",tId:2}
]
}
setting我们就采用上线的设置
DOM结构如下:
<div>
<ul class="ztree" id="des_school"></ul>
</div>
构建tree:
function initTree(){
var teacherList = data.teacher;
var studentList = data.student;
var treeData = [];
treeData.push({id:"root",name:"学校",pId:null});
for(var i=0,il=teacherList.length;i<il;i++){
teacherList[i].pId = "root";
treeData.push(teacherList[i]);
}
for(var i=0,il=studentList.length;i<il;i++){
studentList[i].id = "s"+studentList[i].id;
studentList[i].pId = studentList[i].tId;
treeData.push(studentList[i]);
}
$.fn.zTree.init($("#des_school"),setting,treeData);
}
$(function(){
initTree();
})
zTree简单使用的更多相关文章
- zTree简单实现
用zTree简单实现从后台传数据生成树 1.在jsp上引入js,jsp的head完整的部分 <%@ page language="java" contentType=&quo ...
- zTree简单使用和代码结构
1.页面使用元素代码 <input type="text" id="key" class="Side_Toput2" name=&qu ...
- ZTree简单粗暴快速使用
是什么:功能强大的树形插件 tip:查资料时痛苦的地方,自我改进 1.没有注明版本:版本不对应导致配置完成后各种无端的错误,特别难查找,运气好能找到英文的解答 2.没有写明配置文件,或者不指明配置文件 ...
- zTree使用技巧与详解
zTree--Jquery 树插件,是在后台管理页面中常使用到的插件. 使用效果图: 核心代码: zTree配置: var setting = { data:{simpleData:{enable:t ...
- 项目一:第一天 1、项目概述 2、环境搭建(重点) 3、Jquery Easyui 前端UI框架 4、Jquery Ztree 树形插件使用
1.项目环境 注:添加jar包直接在common_parent里面添加. 搭建数据库 create tablespace bos317space datafile 'c:\ bos317.dbf' ...
- ztree多种数据包装以及相关设置
首先来一个完整的ztree代码 html代码 <form id="addTreeDataFrm" method="post" class="fo ...
- BOS物流管理系统-第一天
BOS物流管理系统-第一天-系统分析.环境搭建.前端框架 BoBo老师 整体项目内容目标: 对项目概述的一些理解 亮点技术的学习 注意学习方式:优先完成当天代码. 其他内容. 最终: 学到新的技术,会 ...
- zTree入门-最简单的树
最近发现项目中很多地方都是树形菜单,而这些树形菜单都是使用树形插件zTree来制作的,所以就想自学一下zTree,参照官方文档写了一个简单的案例,使用zTree做了 一个最简单的树形结构. 案例:zT ...
- 简单Ztree的实现————不连接数据库版
Ztree可以去官网去下载相应的版本和API,我这里就简单的介绍下它的实现以及因为Ztree的小例子印发的Js问题,稍后我会在博客中写JS的异步问题, 我这里用的是MVC4.0,好了正文开始,上代码 ...
随机推荐
- git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误
今天有同事在Gitlab上发送 Merge Request的时候,直接出现如下所示的界面,提示http 500,服务器内部出错. 一.错误描述 1.1 创建新的 Merge Request 1.2 填 ...
- centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统 第七节课
centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpf ...
- js-jquery-SweetAlert2【三】INPUT TYPES
1.text swal({ title: 'Input something', input: 'text', showCancelButton: true, inputValidator: funct ...
- MySql创建函数与过程,触发器, shell脚本与sql的相互调用。
一:函数 1:创建数据库和表deptartment, mysql> use DBSC; Database changed mysql), ), )); Query OK, rows affect ...
- spark 调优概述
分为几个部分: 开发调优.资源调优.数据倾斜调优.shuffle调优 开发调优: 主要包括这几个方面 RDD lineage设计.算子的合理使用.特殊操作的优化等 避免创建重复的RDD,尽可能复用同一 ...
- Java基础知识 Set
在Java中使用Set,可以方便地将需要的类型以集合类型保存在一个变量中.主要应用在显示列表.Set是一个不包含重复元素的 collection. 更确切地讲,set 不包含满足 e1.equals( ...
- 结巴分词中TFIDF的原理
之前了解TFIDF只是基于公式,今天被阿里面试官问住了,所以深入讨论下TFIDF在结巴分词中原理. 概念 TF-IDF(term frequency–inverse document frequenc ...
- Java 动态代理是基于什么原理
动态代理 ①动态代理概念理解 动态代理是一种方便运行时动态构建代理.动态处理代理方法调用的机制,很多场景都利用类似机制做到的,比如用来包装RPC调用.面向切面的变成(AOP) 实现动态代理的方式很多, ...
- 【运维技术】shell脚本实现线程挂掉,自动重启功能
由于分布式系统的流行,服务器上面部署的项目都是多实例的.而我又希望有一个功能,当服务器出现异常情况能够自动重启实例. 所以我想到了使用shell脚本监控实例进程id,如果不存在的话,就重启对应的实例. ...
- bzoj3751 / P2312 解方程
P2312 解方程 bzoj3751(数据加强) 暴力的一题 数据范围:$\left | a_{i} \right |<=10^{10000}$.连高精都无法解决. 然鹅面对这种题,有一种常规套 ...