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 相关文章推荐
javascript脚本编程解决考试分数统计问题
Oct 18 Javascript
一步一步制作jquery插件Tabs实现过程
Jul 06 Javascript
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
js+JQuery返回顶部功能如何实现
Dec 03 Javascript
js获取网页高度(详细整理)
Dec 28 Javascript
顶部缓冲下拉菜单导航特效的JS代码
Aug 27 Javascript
javascript实现查找数组中最大值方法汇总
Feb 13 Javascript
Javascript下拉刷新的简单实现
Feb 14 Javascript
Angular.js中数组操作的方法教程
Jul 31 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
Feb 01 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
Jul 13 Javascript
完美解决通过IP地址访问VUE项目的问题
Jul 18 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
php的一些小问题
2010/07/03 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
页面使用密码保护代码
2013/04/10 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
JS实现星星海特效
2019/12/24 Javascript
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Python中zip函数如何使用
2020/06/04 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
开门红主持词
2014/04/02 职场文书
委托书模板
2014/04/04 职场文书
运动会班级口号
2014/06/09 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
2015大学生求职信范文
2015/03/20 职场文书