一、当某节点被选择或被取消选择时获取所有被选择的节点:

<link rel="stylesheet" href="./static/libs/ztree/css/metroStyle/metroStyle.css" type="text/css"><!-- ztree -->
<script src="./static/libs/ztree/js/jquery.ztree.core-3.5.js"></script><!-- ztree -->
<script src="./static/libs/ztree/js/jquery.ztree.exedit.js"></script><!-- ztree -->
<script src="./static/libs/ztree/js/jquery.ztree.excheck-3.5.js"></script><!-- ztree -->
<script src="./static/libs/ztree/js/jquery.ztree.exhide-3.5.js"></script><!-- ztree -->
<style>
ul.ztree {border: 0 solid #617775;background: #ffffff;width:100%;height:100%;overflow-y:hidden;overflow-x:hidden;}
</style>

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

var setting = {
check: {
enable: true,
chkboxType: {
"Y": "ps",
"N": "ps"
}//设置子父关联关系
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeClick: beforeClick,
onCheck: onCheck
}
}; function beforeClick(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.checkNode(treeNode, !treeNode.checked, null, true);
return true;//此处一定设置为true,否则当取消选择时,onCheck函数不会起作用
} function onCheck(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getCheckedNodes(true),
v = "";
for (var i=0, l=nodes.length; i<l; i++) {
if(nodes[i].isParent){ }else{
v += nodes[i].name + ",";//name为获取节点名称 ,id为获取id,pId为获取pId
}
}
if (v.length > 0 ) {
v = v.substring(0, v.length-1);
}
alert(v);
} var zNodes =[
{ id:1, pId:0, name:"根部门", open:true},
{ id:11, pId:1, name:"一级部门1", open:true},
{ id:111, pId:11, name:"一级部门1子部门1"},
{ id:112, pId:11, name:"一级部门1子部门2"},
{ id:12, pId:1, name:"一级部门2", open:true},
{ id:121, pId:12, name:"一级部门2子部门1"},
{ id:122, pId:12, name:"一级部门2子部门2"}
]; $.fn.zTree.init($("#treeDemo"), setting, zNodes);

二、点击获取当前节点值:

var setting = {
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: onClick
}
}; function onClick(event, treeId, treeNode) {
alert(treeNode.id + ", " + treeNode.name);
//你的ajax代码
} var zNodes =[
{ id:1, pId:0, name:"普通的父节点", t:"我很普通,随便点我吧", open:true},
{ id:11, pId:1, name:"叶子节点 - 1", t:"我很普通,随便点我吧"},
{ id:12, pId:1, name:"叶子节点 - 2", t:"我很普通,随便点我吧"},
{ id:13, pId:1, name:"叶子节点 - 3", t:"我很普通,随便点我吧"},
{ id:2, pId:0, name:"NB的父节点", t:"点我可以,但是不能点我的子节点,有本事点一个你试试看?", open:true},
{ id:21, pId:2, name:"叶子节点2 - 1", t:"你哪个单位的?敢随便点我?小心点儿..", click:false},
{ id:22, pId:2, name:"叶子节点2 - 2", t:"我有老爸罩着呢,点击我的小心点儿..", click:false},
{ id:23, pId:2, name:"叶子节点2 - 3", t:"好歹我也是个领导,别普通群众就来点击我..", click:false},
{ id:3, pId:0, name:"郁闷的父节点", t:"别点我,我好害怕...我的子节点随便点吧...", open:true, click:false },
{ id:31, pId:3, name:"叶子节点3 - 1", t:"唉,随便点我吧"},
{ id:32, pId:3, name:"叶子节点3 - 2", t:"唉,随便点我吧"},
{ id:33, pId:3, name:"叶子节点3 - 3", t:"唉,随便点我吧"}
]; $.fn.zTree.init($("#treeDemo"), setting, zNodes);

三、获取第一个父节点的第一个子节点 :

    var zTree = $.fn.zTree.getZTreeObj("treeDemo");
console.log(zTree.getNodes()[0].children[0]);

四、获取所有节点:

一般情况下,通过zTree官方API的方法获取得到的是一个包含所有子节点的根节点(子节点都处于 children 属性下)

var treeObj = $.fn.zTree.getZTreeObj(“tree");
var nodes = treeObj.getNodes();

当我们需要一次获取所有树节点的时候,有两种方法:

一种是通过递归的方式(此处就不提及了)。

另一种就是通过zTreet提供的方法:

var treeObj = $.fn.zTree.getZTreeObj(”tree“);
var node = treeObj.getNodes();
var nodes = treeObj.transformToArray(node);

这种方法得到的就是整颗树的所有节点集合了。

五、取消节点选择:

var treeId = $.fn.zTree.getZTreeObj("#tree-id");
treeId.checkAllNodes(false);
treeId.cancelSelectedNode();

六、设置下拉树:

下拉树html:

<div class="form-group">
<label class="col-lg-4 col-md-4 col-sm-4 control-label font-normal" style="text-align: right;">用户列表:</label>
<div class="col-lg-5 col-md-5 col-sm-5" style="position:relative;z-index:9999999;">
<input type="text" class="form-control" name="addUserModalUsers" id="add-user-modal-users" onfocus="this.blur();" onclick="showMenu();"/>
<!--onfocus="this.blur();" 是为了禁止用户输入-->
<div id="add-user-modal-users-content" style="display:none; position: absolute; width: 100%;">
<ul id="add-user-modal-users-tree" class="ztree" style="width: 100%;height: 200px; overflow: auto;border: 1px solid #e2e2e2;box-shadow: 0 0 10px #ccc;"></ul>
</div>
</div>
</div>

下拉树设置:

/**
* 增加用户下拉树
*/
var UsersTreeSetting = {
check : {
enable : true,
chkboxType : {
"Y" : "ps",
"N" : "ps"
}
},
view : {
dblClickExpand : false
},
data : {
simpleData : {
enable : true
}
},
callback : {
beforeClick : function(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("add-user-modal-users-tree");
zTree.checkNode(treeNode, !treeNode.checked, null, true);
return true;
},
onCheck : function(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("add-user-modal-users-tree"),
nodes = zTree.getCheckedNodes(true),
v = "";
for (var i = 0, l = nodes.length; i < l; i++) {
if (nodes[i].isParent) { } else {
v += nodes[i].name + ",";//只获取最末端节点的值
}
}
if (v.length >= 0){
v = v.substring(0, v.length - 1);
$("#add-user-modal-users").val(v).change();
}
}
}
}; function showMenu() {
var parentDept = $("#add-user-modal-users");
var parentDeptOffset = $("#add-user-modal-users").offset();
$("#add-user-modal-users-content").css({
right : -10 + "px",
top : (parentDept.outerHeight() + 5) + "px"
}).slideDown("fast"); $("body").bind("mousedown", onBodyDown);
} function hideMenu() {
$("#add-user-modal-users-content").fadeOut("fast");
$("body").unbind("mousedown", onBodyDown);
} function onBodyDown(event) {
if (!(event.target.id == "menuBtn"
|| event.target.id == "add-user-modal-users"
|| event.target.id == "add-user-modal-users-content" || $(event.target).parents(
"#add-user-modal-users-content").length > 0)) {
hideMenu();
}
}

通过异步请求获得节点数据:

        $.ajax({
type: "GET",
url: 'data/' + 'user' + '.json',
data: {},
dataType: "json",
success: function(data){
$.fn.zTree.init($("#add-user-modal-users-tree"), UsersTreeSetting, data);
var usersTreeObj = $.fn.zTree.getZTreeObj("add-user-modal-users-tree");
usersTreeObj.expandAll(true);
},
error: function(data){
alert("error");
console.log(data);
}
});

七、通过代码设置某一节点样式:

            $.fn.zTree.init($("#department-tree"), departmentTreeSetting, data);
var zTree_Menu = $.fn.zTree.getZTreeObj("department-tree");
var curMenu = zTree_Menu.getNodes()[0];
zTree_Menu.selectNode(curMenu);
var a = $("#" + zTree_Menu.getNodes()[0].tId + "_a");
a.addClass("cur");

ztree使用实例的更多相关文章

  1. zTree应用实例详讲(3)

    zTree应用实例详讲(3) 上一讲中,已经讲到了重命名与删除.那么这一讲,我们来做新建文件夹. 其实新建是非常简单的,想一下我们想要的效果:点击新建,然后在一个节点下面出现一个新建的文件夹,并且与此 ...

  2. zTree应用实例详讲

    zTree应用实例详讲(1) 因为项目的需要,要创建一棵动态的文件树,此树除了实现异步获取子节点外,还要实现对树节点的增.删.改.查.移动.重命名.批量删除.批量移动. 每一个操作都要和数据库打交道. ...

  3. zTree学习实例

    今天做完一个zTree的实例,供有需要的学习! 效果图如下:

  4. ztree高级实例(原创)

    最近项目中需要设计一个类似收藏夹的功能保存用户常用的东西,需要客户体验好,所以想到了以前用过的ztree. 在用ztree的过程中遇到一些问题,在此记录,提醒自己,也帮助遇到相同情况的同行们. 1.至 ...

  5. zTree入门实例(一眼就看会)

    zTree 是一个依靠 jQuery 实现的多功能 “树插件”. 下载地址:https://gitee.com/zTree/zTree_v3 待会将上面划的三个文件复制到Java的Web工程下即可 先 ...

  6. zTree和SweetAlert插件初探

    1.zTree插件简介 zTree是一个依靠 jQuery实现的多功能“树插件”.优异的性能.灵活的配置.多种功能的组合是zTree最大优点.专门适合项目开发,尤其是树状菜单.树状数据的Web显示.权 ...

  7. 给zTree添加onSelect callback

    由于jquery ui没有集成tree控件,所以在网上找到了zTree v3.zTree无疑是功能非常强大的一款jquery的插件,而且是国人作品,zTree的文档写得也非常好,效果很炫.但是我在使用 ...

  8. zTree简单使用

    zTree使用 zTree github地址 zTree API文档 zTree插件依赖JQ所以使用zTree首先引入JQ,另外zTree的点击功能,编辑功能都是单独的文件,如需使用也要引入(也可以引 ...

  9. 最近学习工作流 推荐一个activiti 的教程文档

    全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...

随机推荐

  1. 用laravel dingo/api创建简单的api

    1,修改.env配置文件添加 API_STANDARDS_TREE=vnd API_SUBTYPE=myapp API_PREFIX=api API_DOMAIN=null API_VERSION=v ...

  2. dedecms首页去掉index.html怎么设置

    很多网友用IIS服务器建站,反映说dedecms首页默认多了一个/index.html,一般是没有这个后缀的,直接就**.com,那么如何将dedecms首页去掉index.html呢?很简单,服务器 ...

  3. 20170731 培训Bootstrap

    Bootstrap使用 涉及培训内容框架:--1 html html为标记语言,可以理解为容器,就是用来承载你想要展示到网页的内容的容器.版本也有很多,不同版本表示不同的标记的新增或者取代. Boot ...

  4. HIVE简单操作

    1.hive命令登录HIVE数据库后,执行show databases;命令可以看到hive数据库中有一个默认的default数据库. [root@hadoop hive]# hive Logging ...

  5. docker基本原理

    写的很不错的文章,作个存档 什么是容器 容器是 种轻量级.可移植的为应用程序提供了隔离的运行空间 .每个容器内都包含一个独享的完整用户环境,并且 个容器内的环境变动不会影响其他容器的运行环境,可以使应 ...

  6. vuex 子组件传值

    以下是基础的使用方法,详细且深入使用方法详细见博客:https://segmentfault.com/a/1190000015782272 Vuex官网地址:https://vuex.vuejs.or ...

  7. jsonServer 造个假的服务器传递数据接口 再用axois来请求数据

  8. 【漏洞公告】高危:Windows系统 SMB/RDP远程命令执行漏洞

    2017年4月14日,国外黑客组织Shadow Brokers发出了NSA方程式组织的机密文档,包含了多个Windows 远程漏洞利用工具,该工具包可以可以覆盖全球70%的Windows服务器,为了确 ...

  9. MongoDB--运行环境

    版本 a.b.c  a大版本  b中版本分奇数偶数 奇数是开发版 偶数是稳定版 c小版本 ssh工具:远程Linux机器.在windows下使用 Linux 下使用vim     windows下使用 ...

  10. 转 EasyUi日期控件datebox设置,只显示年月,也只能选择年月

    1.引入Jquery和easyui,注低版本的Jquery和easy不能使用,这里使用的Jquery是1.8.2easyui是1.6.1.1.easyui下载地址:http://www.jeasyui ...