jquery zTree异步加载简单实例分享


Posted in Javascript onFebruary 05, 2013

首先提供Ztree官方网站http://www.ztree.me。
Ztree是一个使用jQuery实现的JSP页面的各种功能树,本文介绍一个异步获取数据到下拉树的实现方式。
当前版本Ztree 3.5.01
simple.html

<!DOCTYPE html> 
<html> 
<head> 
<title>simple.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
<meta http-equiv="description" content="this is my page"> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<link rel="stylesheet" type="text/css" href="css/zTreeStyle.css"> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script> 
<script type="text/javascript" src="js/jquery.ztree.excheck-3.5.min.js"></script> 
<!-- <script type="text/javascript" src="js/standard.js"></script> --> 
<script type="text/javascript" src="js/1.js"></script> 
</head> 
<body> 
<div class="zTreeDemoBackground left"><ul id="treeDemo" class="ztree"></ul></div> 
</body> 
</html>

js
var setting = { 
data: { 
simpleData: { 
enable: true 
// idKey:"id", 
// pIdKey:"pId", 
} 
} 
,async: { 
enable: true, 
url:"/Java_Solr/servlet/ZTreeSerlvet", 
autoParam:["id", "name"], 
otherParam:{"otherParam":"zTreeAsyncTest"}, 
// dataType: "text",//默认text 
// type:"get",//默认post 
dataFilter: filter //异步返回后经过Filter 
} 
,callback:{ 
// beforeAsync: zTreeBeforeAsync, // 异步加载事件之前得到相应信息 
asyncSuccess: zTreeOnAsyncSuccess,//异步加载成功的fun 
asyncError: zTreeOnAsyncError, //加载错误的fun 
beforeClick:beforeClick //捕获单击节点之前的事件回调函数 
} 
}; 
//treeId是treeDemo 
function filter(treeId, parentNode, childNodes) { 
if (!childNodes) return null; 
for (var i=0, l=childNodes.length; i<l; i++) { 
childNodes[i].name = childNodes[i].name.replace('',''); 
} 
return childNodes; 
} 
function beforeClick(treeId,treeNode){ 
if(!treeNode.isParent){ 
alert("请选择父节点"); 
return false; 
}else{ 
return true; 
} 
} 
function zTreeOnAsyncError(event, treeId, treeNode){ 
alert("异步加载失败!"); 
} 
function zTreeOnAsyncSuccess(event, treeId, treeNode, msg){ } 
/***********************当你点击父节点是,会异步访问servlet,把id传过去*****************************/ 
var zNodes=[]; 
/* var zNodes =[ 
{ id:1, pId:0, name:"parentNode 1", open:true}, 
{ id:11, pId:1, name:"parentNode 11"}, 
{ id:111, pId:11, name:"leafNode 111"}, 
{ id:112, pId:11, name:"leafNode 112"}, 
{ id:113, pId:11, name:"leafNode 113"}, 
{ id:114, pId:11, name:"leafNode 114"}, 
{ id:12, pId:1, name:"parentNode 12"}, 
{ id:121, pId:12, name:"leafNode 121"}, 
{ id:122, pId:12, name:"leafNode 122"}, 
{ id:123, pId:12, name:"leafNode 123"}, 
{ id:13, pId:1, name:"parentNode 13", isParent:true}, 
{ id:2, pId:0, name:"parentNode 2", isParent:true} 
]; */ 
$(document).ready(function(){ 
$.fn.zTree.init($("#treeDemo"), setting, zNodes); 
});

得到zTree对象 :var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
ZtreeServlet
package org.hzy.servlets; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
import java.util.List; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.hzy.bean.ZtreeBean; 
import com.alibaba.fastjson.JSON; 
public class ZTreeSerlvet extends HttpServlet { 
public void destroy() { 
super.destroy(); 
} 
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
System.out.println(request.getParameter("id") + " " + request.getParameter("name") + " " + request.getParameter("otherParam")); 
response.setCharacterEncoding("UTF-8"); 
PrintWriter out = response.getWriter(); 
ZtreeBean zb = new ZtreeBean(0, -1, "zb", true); 
ZtreeBean zb1 = new ZtreeBean(1, 0, "zb1", true); 
ZtreeBean zb2 = new ZtreeBean(2, 1, "zb2", false); 
ZtreeBean zb3 = new ZtreeBean(2, 0, "zbss", true); 
List<ZtreeBean> list = new ArrayList<ZtreeBean>(); 
list.add(zb); 
list.add(zb1); 
list.add(zb2); 
list.add(zb3); 
String str = JSON.toJSONString(list); 
out.print(str); 
} 
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
doGet(request, response); 
} 
public void init() throws ServletException { 
} 
}
Javascript 相关文章推荐
js静态作用域的功能。
Dec 25 Javascript
iframe 异步加载技术及性能分析
Jul 19 Javascript
jquery中event对象属性与方法小结
Dec 18 Javascript
JavaScript获取当前网页标题(title)的方法
Apr 03 Javascript
在html中引入外部js文件,并调用带参函数的方法
Oct 31 Javascript
js无提示关闭浏览器窗口的两种方法分析
Nov 06 Javascript
详解JSONObject和JSONArray区别及基本用法
Oct 25 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
May 30 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
Sep 17 Javascript
8 个有用的JS技巧(推荐)
Jul 03 Javascript
CountUp.js实现数字滚动增值效果
Oct 17 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 Javascript
JS打印gridview实现原理及代码
Feb 05 #Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 #Javascript
Js 获取Gridview选中行的内容操作步骤
Feb 05 #Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
Feb 04 #Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 #Javascript
Jquery UI震动效果实现原理及步骤
Feb 04 #Javascript
用按钮控制iframe显示的网页实现方法
Feb 04 #Javascript
You might like
PHP 常见郁闷问题答解
2006/11/25 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
jquery UI 1.72 之datepicker
2009/12/29 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
python海龟绘图实例教程
2014/07/24 Python
python Django框架实现自定义表单提交
2016/03/25 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
python对Excel的读取的示例代码
2020/02/14 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
keras 多gpu并行运行案例
2020/06/10 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
超市国庆节促销方案
2014/02/20 职场文书
物流专业自荐信
2014/05/23 职场文书
留学生求职信
2014/06/03 职场文书
争先创优演讲稿
2014/09/15 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
利用Python实现Picgo图床工具
2021/11/23 Python