Jquery zTree 树控件异步加载操作


Posted in Javascript onFebruary 25, 2016

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件

  • 兼容 IE、FireFox、Chrome 等浏览器
  • 在一个页面内可同时生成多个 Tree 实例
  • 支持 JSON 数据
  • 支持一次性静态生成 和 Ajax 异步加载 两种方式
  • 支持多种事件响应及反馈
  • 支持 Tree 的节点移动、编辑、删除
  • 支持任意更换皮肤 / 个性化图标(依靠css)
  • 支持极其灵活的 checkbox 或 radio 选择功能
  • 简单的参数配置实现 灵活多变的功能

Jquery zTree 树控件异步加载操作

异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载。

这里面主要设计ztree的setting变量的async属性设置:

var setting = {
 async: {
  enable: true,
  url:InitServiceIpsData.action,
  autoParam:[id, name],
  dataFilter: filter 
 },

当点击展开树节点时,会请求url指定的action获取子节点数据,然后绑定到ztree上。

注意这里后台action返回的是JSON字符串,而ztree绑定新的节点数据只接收数组,所以需要在绑定前用filter函数进行数据清洗转换操作,将字符串转换为数组:

//过滤异步加载ztree时返回的数据 
 function filter(treeId, parentNode, childNodes) {
 if (!childNodes) 
  return null; 
 childNodes = eval((+childNodes+)); //必须转换为[{id:103,pId:1,name:'子节点3'}];这样的格式 
 return childNodes;
 }

这样点击展开ztree树节点时,就会请求action获取子节点数据并绑定了。 

下面是后台action的一个实现:

public String InitServiceIpsData()
 {
 HttpServletRequest request = ServletActionContext.getRequest();
 String id = request.getParameter(id);
 String name = request.getParameter(name);
 System.out.println(请求获取+name+的ip列表);
  
 List<hashmap<string,object>> list = new ArrayList<hashmap<string,object>>();  
 for(int i = 1; i <= 2; i++){ 
  HashMap<string,object> hm = new HashMap<string,object>();  
  hm.put(id, id + 0 + i);
  hm.put(pId, id);
  hm.put(name, name + _IP_ + i);
  hm.put(isParent, false);
  list.add(hm);
 } 
  
 JSONArray finalJson = JSONArray.fromObject(list);
 this.initServiceIpsData = finalJson.toString();
 return SUCCESS;
 }</string,object></string,object></hashmap<string,object></hashmap<string,object>

更多关于ztree控件的内容,请参考专题《jQuery插件ztree使用汇总》

以上就是Jquery zTree 树控件实现异步加载操作的详细步骤,希望对大家的学习有所帮助。

Javascript 相关文章推荐
有关DOM元素与事件的3个谜题
Nov 11 Javascript
jQuery创建插件的代码分析
Apr 14 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
Mar 22 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
原生js制作简单的数字键盘
Apr 24 Javascript
js中实现字符串和数组的相互转化详解
Jan 24 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
详解Vue中组件的缓存
Apr 20 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 #Javascript
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 #Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 #Javascript
jquery zTree异步加载简单实例讲解
Feb 25 #Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 #Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 #Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 #Javascript
You might like
php类
2006/11/27 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
技校生自我鉴定
2013/12/08 职场文书
《云房子》教学反思
2014/04/20 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
2015年老干部工作总结
2015/04/23 职场文书
退休欢送会主持词
2015/07/01 职场文书
大队委员竞选稿
2015/11/20 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Python实现位图分割的效果
2021/11/20 Python
Python OpenCV超详细讲解基本功能
2022/04/02 Python