一、功能描述:利用jQuery ztree3.1版本插件做导航树形菜单时,页面打开先加载二级菜单,通过点击事件,异步加载的方式,在添加当前父节点的子节点。
二、初始步骤:
1.按照文档要求,导入jquery包,ztree插件包3.1版本;
2.编写相应的jsp页面代码
三、遇到问题:
1、通过chrome调试的时候,提示:addNodes不是当前jquery对象treeObj的方法。但是在api文档里确实存在这个方法。
2、经过很长时间的摸索,开始把ztree-core.js插件换成高版本的,结果addNodes好用了,但是没有了菜单的图标,而且所有的都是异步加载。
四、解决问题:
原因:最后在3.2版本更新日志中,发现这么一句话:
* 【修改】代码结构,将 addNodes、removeNode、removeChildNodes 方法 和 beforeRemove、onRemove 回调 转移到 core 内。
最终领悟,原来3.2版本之前的addNodes。。。等一些方法在ztree.exedit.js中,而且在3.1文档中,方法前也有E字母标识。
所以只要引入jquery.ztree.exedit-3.1.js 包,即可解决这个问题。
五、总结
粗心浪费了好多时间,注意API中的小细节。
这是jqueryztree 各个版本的URL:
http://code.google.com/p/jquerytree/downloads/list,供大家参考。
六、jsp代码,只需要加入jquery.ztree.exedit-3.1.js ,url换了即可。
%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>机构维护</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../zTreeStyle/zTreeStyle.css" type="text/css"/>
<script type="text/javascript" src="../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../jquery.ztree.core-3.1.js"></script>
<script type="text/javascript"
</head>
<body>
<div>
<ul id="orgTree" class="ztree" style="width:230px; overflow:auto;"></ul>
</div>
<script type="text/javascript">
//配置setting
var ztreeObj,
setting = {
async: {
enable: true,//开启异步加载模式
contentType: "application/json", //Ajax 提交参数的数据类型。
type: "post",
dataType: "text",//Ajax 获取的数据类型
"url" : "${pageContext.request.contextPath}/org/makeOrgTree.action",
//自动提交当前节点的id
//假设 异步加载 父节点(node = {id:1, name:"test"}) 的子节点时,将提交参数 id=1
autoParam: ["id"]
},
//Ajax 返回的数据格式中,页面主要参数的设置
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pid",
rootPid: "0"
}
},
//树形图动作
view: {
expandSpeed: "fast", //节点展开的速度
selectedMulti: false //设置是否允许同时选中多个节点。
},
//回调函数的设置
callback: {
onClick: zTreeOnClick //点击事件,当点击节点,做的事情。
}
};
/**
* 初始化树形菜单
*/
$(function(){
ztreeObj = $.fn.zTree.init($("#orgTree"),setting);
});
//点击事件的处理
function zTreeOnClick(event,treeId,treeNode){
pid =treeNode.id;
var data = {"org.id":pid};
$.ajax({
url:"${pageContext.request.contextPath}/org/makeOrgTreeAgain.action",
type: "post",
dataType: "json",
data: data,
cache: false,
success: function(jsonArray){
var treeObj = $.fn.zTree.getZTreeObj("orgTree");
treeObj.addNodes(treeNode,jsonArray);
}
});
}
</body>
</html>
分享到:
相关推荐
* 【修改】初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug * 【修改】多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。 * 【修改】多...
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。下面通过本文给大家分享jQuery zTree 异步加载添加子节点重复问题,需要的朋友参考下吧
本文实例讲述了jQuery插件zTree实现清空选中第一个节点所有子节点的方法。分享给大家供大家参考,具体如下: 1、实现代码: <!DOCTYPE html> <html> <head> <title>zTree实现基本树</...
jquery zTree方便简单实用的树形框架,有详细的api
Jquery javascript API 中文 JQuery zTree v3.5 api
jquery ztree实现模糊查询功能,给树上的结点添加过滤器
JQuery zTree v3.1 API
jquery ztree 异步动态加载部署直接运行,大数据量,异步是很好的处理方式
包括jQuery zTree v2.5的js源码jquery-ztree-2.5.js,API文档zTreeAPI v2.5.chm和zTreeAPI v2.5.pdf 以及示例demo
JQuery zTree开发指南,快速掌握JQuery zTree开发
JQuery zTree.zip
下面介绍一下zTree 的主要功能:( 演示Demo 请访问 个人站点) 1、兼容 IE、FireFox、Chrome 等浏览器(对于IE 6.0的兼容问题将不做特殊维护) 2、在一个页面内可同时生成多个 Tree 实例 3、支持 JSON 数据 4...
JQuery zTree 有 API 和 DEMO
JQuery zTree v2.6.rar,含demo
jquery-1.4.4.min.js jquery.ztree.exhide.min.js jquery.ztree.exedit.min.js jquery.ztree.excheck.min.js jquery.ztree.core.min.js jquery.ztree.all.min.js jquery-1.4.4.js jquery.ztree.exhide.js jquery....
JQuery zTree v3.1
JQuery zTree是一个功能强大的Tree控件,这里使用asp.net实例了JQuery zTree数据加载,希望对大家有所帮助
jquery-ztree.rar下载