zTree--Jquery 树插件,是在后台管理页面中常使用到的插件。

使用效果图:

核心代码:

zTree配置:
var setting = {data:{simpleData:{enable:true,idKey:"id",pIdKey:"pId",rootPId:'0'}},async: {  enable: true,url:"${ctx}/ownerinformation/lifetouchOwnerInformation/houseTreeData",contentType:"application/x-www-form-urlencoded",autoParam:["officeId", "officeName", "floorId", "unitNumberId", "roomNumberId"],//otherParam:{"otherParam":"zTreeAsyncTest"},//提交的其他参数,json的形式  dataType:"json",type:"post",dataFilter: null},callback:{onClick:function(event, treeId, treeNode){refreshWhice='';var officeId = treeNode.officeId === undefined ? '' :treeNode.officeId;var floorId = treeNode.floorId === undefined ? '' :treeNode.floorId;var unitNumberId = treeNode.unitNumberId === undefined ? '' :treeNode.unitNumberId;var roomNumberId = treeNode.roomNumberId === undefined ? '' :treeNode.roomNumberId;var ownerId = treeNode.ownerId === undefined ? '' :treeNode.ownerId;if(treeNode.ownerId) {$('#officeContent').attr("src","${ctx}/ownerinformation/lifetouchOwnerInformation/details?houseType=1&id="+treeNode.ownerId);} else {$('#officeContent').attr("src","${ctx}/ownerinformation/lifetouchOwnerInformation/list?houseType=1&houseInformation.office.id="+officeId+"&houseInformation.floor="+floorId+"&houseInformation.unitNumber="+unitNumberId+"&houseInformation.roomNumber="+roomNumberId+"&id="+ownerId);}},onRightClick: OnRightClick}};zTree初始化:
function refreshTree(){$.getJSON("${ctx}/ownerinformation/lifetouchOwnerInformation/ownerTreeData",function(data){$.fn.zTree.init($("#ztree"), setting, data);zTreeMy = $.fn.zTree.getZTreeObj("ztree");});
}
refreshTree();zTree刷新当前选中节点或者刷新当前选中节点的父节点:
//刷新节点
function refreshNode() {type = "refresh",  silent = false,  nodes = zTreeMy.getSelectedNodes(); if(nodes.length>0) {if(refreshWhice=='refreshNode') {zTreeMy.reAsyncChildNodes(nodes[0], type, silent);var fiterNode = refreshFiter();if(fiterNode != null) {zTreeMy.selectNode(fiterNode);  zTreeMy.reAsyncChildNodes(fiterNode, type, silent);}} else if(refreshWhice=='refreshParentNode') {var parentNode = zTreeMy.getNodeByTId(nodes[0].parentTId);  zTreeMy.selectNode(parentNode);  zTreeMy.reAsyncChildNodes(parentNode, type, silent);var fiterNode = refreshFiter();if(fiterNode != null) {zTreeMy.selectNode(fiterNode);  zTreeMy.reAsyncChildNodes(fiterNode, type, silent);}}}
}zTree根据自定义规则搜索节点:
var officeId, floorId, unitNumberId, roomNumberId;//根据自定义规则搜索节点function refreshFiter() {var fiterNode = zTreeMy.getNodesByFilter(function (node) { return (node.officeId == officeId && node.floorId == floorId &&node.unitNumberId == unitNumberId && node.roomNumberId == roomNumberId)}, true);if(fiterNode==null) {fiterNode = zTreeMy.getNodesByFilter(function (node) { return (node.officeId == officeId && node.floorId == floorId &&node.unitNumberId == unitNumberId)}, true);if(fiterNode==null) {fiterNode = zTreeMy.getNodesByFilter(function (node) { return (node.officeId == officeId && node.floorId == floorId)}, true);if(fiterNode==null) {fiterNode = zTreeMy.getNodesByFilter(function (node) { return (node.officeId == officeId)}, true);}}}return fiterNode;}zTree右键事件:
function OnRightClick(event, treeId, treeNode) {if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {zTreeMy.cancelSelectedNode();showRMenu("root", event.clientX, event.clientY);} else if (treeNode && !treeNode.noR) {if(treeNode.level>0) {$("#m_matching").hide();$("#m_add").show();$("#m_update").hide();$("#m_del").hide();if(treeNode.ownerId) {if(treeNode.status=='1') {$("#m_matching").show();}$("#m_add").hide();$("#m_update").show();$("#m_del").show();} else if(treeNode.roomNumberId) {$("#m_add").text("增加住户");$("#m_update").show();$("#m_del").show();} else if(treeNode.unitNumberId) {$("#m_add").text("增加房间");} else if(treeNode.floorId) {$("#m_add").text("增加楼层");} else if(treeNode.officeId) {$("#m_add").text("增加栋数");}zTreeMy.selectNode(treeNode);showRMenu("node", event.clientX, event.clientY);}}}zTree增加子节点:
function addTreeNode() {refreshWhice='refreshNode';hideRMenu();var treeNode = zTreeMy.getSelectedNodes()[0];if(treeNode.roomNumberId) {$('#officeContent').attr("src","${ctx}/ownerinformation/lifetouchOwnerInformation/form?houseType=1&houseInformation.office.id="+treeNode.officeId+"&houseInformation.office.name="+treeNode.officeName+"&houseInformation.floor="+treeNode.floorId+"&houseInformation.unitNumber="+treeNode.unitNumberId+"&houseInformation.roomNumber="+treeNode.roomNumberId);} else if(treeNode.unitNumberId) {$('#officeContent').attr("src","${ctx}/houseinformation/lifetouchHouseInformation/form?houseType=1&office.id="+treeNode.officeId+"&office.name="+treeNode.officeName+"&floor="+treeNode.floorId+"&unitNumber="+treeNode.unitNumberId);} else if(treeNode.floorId) {$('#officeContent').attr("src","${ctx}/houseinformation/lifetouchHouseInformation/form?houseType=1&office.id="+treeNode.officeId+"&office.name="+treeNode.officeName+"&floor="+treeNode.floorId);} else if(treeNode.officeId) {$('#officeContent').attr("src","${ctx}/houseinformation/lifetouchHouseInformation/form?houseType=1&office.id="+treeNode.officeId+"&office.name="+treeNode.officeName);}}zTree修改节点:
function updateTreeNode() {refreshWhice='refreshParentNode';hideRMenu();var treeNode = zTreeMy.getSelectedNodes()[0];if(treeNode.ownerId) {$('#officeContent').attr("src","${ctx}/ownerinformation/lifetouchOwnerInformation/form?houseType=1&id="+treeNode.ownerId);} else if(treeNode.roomNumberId) {$('#officeContent').attr("src","${ctx}/houseinformation/lifetouchHouseInformation/form?houseType=1&id="+treeNode.houseId);}}zTree删除节点:
function removeTreeNode() {refreshWhice='refreshParentNode';hideRMenu();var treeNode = zTreeMy.getSelectedNodes()[0];if(treeNode.ownerId) {top.$.jBox.confirm("确认要删除该住户管理信息吗?","系统提示",function(v,h,f){if(v=="ok"){$('#officeContent').attr("src","${ctx}/ownerinformation/lifetouchOwnerInformation/delete?houseType=1&id="+treeNode.ownerId);}},{buttonsFocus:1});top.$('.jbox-body .jbox-icon').css('top','55px');} else if(treeNode.roomNumberId) {top.$.jBox.confirm("确认要删除该房屋信息吗?","系统提示",function(v,h,f){if(v=="ok"){$('#officeContent').attr("src","${ctx}/houseinformation/lifetouchHouseInformation/delete?houseType=1&id="+treeNode.houseId);}},{buttonsFocus:1});top.$('.jbox-body .jbox-icon').css('top','55px');}}整体内容:
<div id="content" class="row-fluid"><div id="left" class="accordion-group"><div class="accordion-heading"><a class="accordion-toggle">单位<i class="icon-refresh pull-right" οnclick="refreshTree();"></i></a></div><div id="ztree" class="ztree"></div></div><div id="openClose" class="close"> </div><div id="right"><iframe id="officeContent" src="${ctx}/ownerinformation/lifetouchOwnerInformation/list?houseType=1" width="100%" height="91%" frameborder="0"></iframe></div></div>//调用父页面函数刷新zTree
parent.refreshNode();//调用父页面属性
parent.officeId = $("input[name='office.id']").val();
parent.floorId = $("input[name='floor']").val();
parent.unitNumberId =  $("input[name='unitNumber']").val();
parent.roomNumberId = $("input[name='roomNumber']").val();

参考文章:

API Document [zTree -- jQuery tree plug-ins.]

API 文档 [zTree -- jQuery 树插件]

jquery ztree 增加自定义属性

ZTREE DEMO

Ztree的异步加载子节点简单使用

zTree简单使用和代码结构

zTree实现节点修改的实时刷新

转载于:https://www.cnblogs.com/molashaonian/p/7242031.html

zTree使用技巧与详解相关推荐

  1. Unity进阶技巧 - RectTransform详解

    一.Pivot属性详解 首先为了让大家更好的理解内容,我在Unity中创建了两个UI控件,一个Plane控件,作为父对象,一个Image控件,作为子对象. 然后我们选中子对象,来看看它的RectTra ...

  2. 苹果7plus专用计算机,iphone7plus怎么用 iphone7plus使用技巧【详解】

    iphone7plus逐渐成为了主流手机设备,许多朋友毫不犹豫的购买了iPhone 7 Plus,但是依然有许多朋友不知道iPhone 7 Plus的使用方式,小编为大家带来了详细的iPhone 7/ ...

  3. 怎么把字母缩小当符号_iPhone自带输入法怎么用 iPhone自带输入法小技巧【详解】...

    像安卓机用户的话一般会选择下载第三方输入法软件,如搜狗.讯飞等输入法来打字.但iPhone用户一般就选择使用iPhone自带的输入法,随着系统的升级,iPhone自带的输入法也越来越好用,还有许多小功 ...

  4. 虾皮运营技巧(详解)

    三分靠选品,七分靠运营,这句话不是说说的,运营对于电商人来说真的很重要.那么如何运营呢,运营的技巧是什么?今天我们就详细的说说,虾皮运营技巧. 站内:站内流量就是粉丝,粉丝运营是有一定的技巧的.大多数 ...

  5. u盘容量影响计算机运行速度,U盘怎么提高电脑运行速度?电脑提速实用技巧【详解】...

    U盘怎么提高电脑运行速度? 许多U盘支持写入保护的机制.这种在外壳上的开关可以防止电脑写入或修改磁盘上的数据.写入保护可以防止电脑病毒文件写入闪存盘,以防止该病毒的传播.那如果我说,U盘可以提高电脑运 ...

  6. DWCC2018HTML基本网页设计技巧方法详解

    目录: 一.文本格式化标记 ----------------------1.各类标签及描述 二.HTNL链接 ----------------------1.HTML链接语法 ------------ ...

  7. 游戏辅助教程-地址篇 CE找地址技巧 找不可见数据和可见数据技巧 教程详解 常见搜索技巧列举 CE搜索入门教程详解

    该教程为系列教程,后续教程程会持续更新 对当前教程有疑问请在下方留言,我会按照大家建议修改和完善课程内容.请大家多多关注支持. CE找地址教程 目录 CE找地址教程 1.讲在前面 2.数值类型 3.搜 ...

  8. 手写键盘计算机,手写键盘怎么用 手写键盘使用技巧【详解】

    [电脑手写板输入法]手写键盘用户使用指导 手写键盘使用技巧 手写键盘用户使用指导 手写键盘巧妙的将 手写板 和键盘.鼠标结合到一起,备受用户青睐,需要文字录入时可以用手写板写字,平时可以用键盘进行一些 ...

  9. 苹果手机输入法软件测试,iPhone自带输入法怎么用 iPhone自带输入法小技巧【详解】...

    像安卓机用户的话一般会选择下载第三方输入法软件,如搜狗.讯飞等输入法来打字.但iPhone用户一般就选择使用iPhone自带的输入法,随着系统的升级,iPhone自带的输入法也越来越好用,还有许多小功 ...

最新文章

  1. 电脑介绍,最好手提电脑介绍
  2. 由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断解决办法...
  3. 学习笔记:2019 张小龙在微信公开课上的演讲
  4. 高德地图时间和实际差多少_带着“高德地图”去工作
  5. linux无网络环境pcre安装,Linux下无网络安装Nginx
  6. 深入了解Cookie(1)------selenium2进行Cookie操作的前奏
  7. How to build .apk file from command line
  8. 手机在线编程软件Anycodes
  9. J1939广播DM1报文
  10. js中替换和全部替换
  11. ZedBoard 最小系统构建 (一)-硬件结构搭建
  12. 论文章的标题与页面的距离不一样(已解决)章标题设置相同的段前段后间距,但各章段前距不一致
  13. unity如何实现图片透视_实战 | 自己实现扫描全能王
  14. 用户名第一个字符设置为默认头像
  15. python ssl module_Python升级后ssl模块不可用问题解决和浅析
  16. linux学习笔记之lvm管理
  17. 让mysql支持emoji表情_让MySQL支持Emoji表情 mysql 5.6
  18. 抓取某一个网站整站的记录
  19. 【Apache S4 介绍】
  20. 电脑为什么丢失msvcp140.dll?msvcp140.dll丢失修复详细教程步骤

热门文章

  1. 10月13日云栖精选夜读:【云栖大会】阿里云和红帽达成合作为百万级客户提供更多企业级解决方案...
  2. [转] JavaScript中的属性:如何遍历属性
  3. HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
  4. 基于动态IP的Internet视频监控解决方案(作者:吴晓晖)
  5. 使用Mono平台前,请牢记产品观点(所有.Net程序员都建议知道的)
  6. Android语言国际化values资源文件命名规则
  7. android 跳转到小米手机神隐模式
  8. Dalvik分析(二)
  9. Android studio编译好的apk文件在哪里?
  10. C/C++结构体struct 与结构体数组和枚举型enum的结合使用