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处理VBArray的函数使用说明
May 11 Javascript
jQuery lazyload 的重复加载错误以及修复方法
Nov 19 Javascript
分页栏的web标准实现
Nov 01 Javascript
jquery中选择块并改变属性值的方法
Jul 31 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
Mar 10 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
js css+html实现简单的日历
Jul 14 Javascript
详解JavaScript RegExp对象
Feb 04 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
Feb 28 Javascript
解决layui弹出层layer的area过大被遮挡的问题
Sep 21 Javascript
JS实现炫酷雪花飘落效果
Aug 19 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 trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
python使用电子邮件模块smtplib的方法
2016/08/28 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
python中pickle模块浅析
2020/12/29 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
百度软件工程师职位
2013/02/14 面试题
工作人员思想汇报
2014/01/09 职场文书
护士实习求职信
2014/06/22 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
《西门豹》教学反思
2016/02/23 职场文书