- 浏览: 348330 次
- 性别:
- 来自: 北京
-
最新评论
-
javabro:
求告知,ztree中自己在点onclick () 通过获取tI ...
本人从今以后不再维护这里的博客, 只在 开源中国 进行发布 -
sinoyang:
使用的时候发现与bootstrap冲突了,蛋疼死了,改哪个都不 ...
JQuery Tree插件——zTree v3.5.16 版 发布 -
clear_yang:
jquery.ztree.excheck.min.js:15 ...
JQuery Tree插件——zTree v3.5.02 版 发布 -
路人NFTS:
请教个问题,ztree 支持异步加载的扩展么? 因为跨域,IE ...
JQuery Tree插件——zTree v3.5.16 版 发布 -
kainever7:
页面初始化时,通过<iframe src=". ...
JQuery Tree插件——zTree v3.5.16 版 发布
v3.0 改动很大,而且计划这次 从 beta 到 正式版至少需要1-2个月的时间进行沉淀,因为这期间一方面需要修正bug、增加适当功能。同时也在努力争取正式版时推出英文版的 Demo 和 API,所以专门开篇文章,用来发布 v3.0 beta 中已经发现的 bug 和解决方案,帮助这期间遇到 bug 的朋友解决问题。
在发布正式版之前,查看 v3.0 beta 的改动计划以及 Bug 修正都在这篇博文中进行记录。
[最后修改日期 2012-01-04] ---- 已进入 最后测试阶段
---【增加】---
1、【增加】setting.check.autoCheckTrigger 默认值 false,可以设置联动选中时是否触发 onCheck 回调函数
制作完毕,随v3.0正式版发布
2、【增加】setting.callback.beforeEditName 回调函数,以保证用户可以捕获点击编辑按钮的事件
制作完毕,随v3.0正式版发布
3、【增加】treeNode.checkDisable 属性,显示 checkbox 但是用户无法修改 checkbox 状态,并且该checkbox 会影响父节点的 checkbox 的半选状态
制作 完毕,随v3.0正式版发布
4、【增加】setting.check.nocheckInherit 属性,用户设置子节点继承 nocheck 属性,用于批量初始化节点,不适用于已经显示的节点
制作 完毕,随v3.0正式版发布
5、【增加】setting.edit.drag.autoExpandTrigger 默认值 false,可以设置自动展开、折叠操作时是否触发 onExpand 回调函数
制作 完毕,随v3.0正式版发布
6、【增加】setting.view.nameIsHTML 默认值 false,允许用户对 name 设置 DOM 对象
制作 完毕,随v3.0正式版发布
7、【增加】类似于Ext.tree.TreeFilter类, 可以实现树节点的过滤,隐藏不匹配过滤条件的节点
由于时间原因,此功能等正式版发布后,制作 zTree 扩展工具时一起开发。
制作完毕,随v3.0正式版发布
---【修改】---
1、【修改】异步加载 & 编辑功能 共存时,拖拽节点 或 增加节点 导致 ie 上报错的 bug (apply 方法引起)
解决方案:将 jquery.ztree.core-3.0.js 文件中 Line 682 的 return fun.apply(zt, param); 修改为 return fun.apply(zt, param?param:[]);
2、【修改】zTreeStyle 样式冲突
解决方案:将 zTreeStyle 的第 82 行 ul.zTreeDragUL 修改为 ul.ztree.zTreeDragUL,并且将该行的 overflow:auto; 修改为 overflow:hidden;
3、【修改】setting.data.key.title 默认值设置为 "",初始化时自动赋值为 setting.data.key.name 这样可避免希望 title 与 name 一致的用户反复设置参数
修正完毕,随v3.0正式版发布
4、【修改】点击叶子节点的连接线会触发 expand 事件的 bug
修正完毕,随v3.0正式版发布
5、【修改】IE 下 点击叶子节点连线会出现虚线框的 bug
修正完毕,随v3.0正式版发布
6、【修改】updateNode 导致 checkbox 半选状态错误的 bug
解决方案:将 jquery.ztree.excheck-3.0.js 文件中 Line 470 的 if (node.nocheck !== true) { 修改为 if (node.nocheck !== true && node[childsKey] && node[childsKey].length > 0) {
原解决方案会引起勾选关联的错误,正确解决方案:
(1) 保留 Line 470 的 if (node.nocheck !== true) {
(2) 将 Line 472 的 node.check_Child_State = value ? 2 : 0; 修改为 node.check_Child_State = (node[childsKey] && node[childsKey].length > 0) ? (value ? 2 : 0) : -1;
7、【修改】checkNode 方法实现 toggle 功能, 取消 expandAll 方法 toggle 功能
修正完毕,随v3.0正式版发布
8、【修改】zTree 内鼠标移动会抢页面上 input 内的焦点的 bug
解决方案:请将 jquery.ztree.core-3.0.js 中 621行 的 if (x) { 修改为 if (x && $("input:focus").length == 0) {
以上解决方案会导致 IE6 下编辑模式出现异常 (因此需要用 try catch 将 这个 if 段落包起来)。
9、【修改】beforeRename / onRename 的触发方式——即使名称内容未改变也会触发,便于用户配合 beforeEditName 捕获编辑状态的结束,赋予用户更多调整规则的权利
修正完毕,随v3.0正式版发布
10、【修改】与 easyUI 共存时无法拖拽的 bug
解决方案:请将 Line 442左右的 if (settings[s].edit.enable && settings[s].treeId != setting.treeId 替换为 if (settings[s].treeId && settings[s].edit.enable && settings[s].treeId != setting.treeId
11、【修改】beforeRename 在 Firefox 下如果利用 alert,会触发两次的 bug
修正完毕,随v3.0正式版发布
补充:重新修正了一下,beforeName如果return false,将不会强行让input 获取焦点,这样可以避免blur导致的反复验证。 同时使用editName 方法可以主动设置 input 获取焦点,便于控制
12、【修改】checkNode/expandNode/removeNode 方法,默认不触发回调函数,恢复 v2.6 的默认状态,同时增加 callbackFlag 参数,设置为 true 时,可以触发回调函数
修正完毕,随v3.0正式版发布
13、【修改】IE9下“根据参数查找节点”的Demo 报错:行14 重新声明常量属性
修正完毕,随v3.0正式版发布(Demo自身问题,无意间定义了变量名为 history 导致!)
14、【修改】初始化 zTree 时 onNodeCreated 事件回调函数中无法 用 getZTreeObj 获取 zTree 对象的 bug
修正完毕,随v3.0正式版发布
15、【修改】setting.edit.drag.prev / next / inner 参数,增加被拖拽的节点集合
修正完毕,随v3.0正式版发布
16、【修改】异步加载模式下,otherParam 使用 Array 数组会出错的 bug。例如: ["id", "1", "name", "test"]
解决方案1:请先使用 JSON 数据进行设置,不要使用 Array 数组
解决方案2:请将 core 的 js 代码中 asyncParamOther 替换为 async.otherParam 即可
17、【修改】FireFox 下多棵树之间无法正常拖拽的 bug
修正完毕,随v3.0正式版发布
18、【修改】exedit 中调用 excheck库的方法时没有进行容错处理,导致如果只加入 exedit 而没有 excheck的时候,会出现 js 错误
修正完毕,随v3.0正式版发布
19、【修改】显示 checkbox 的 zTree 在编辑模式下,移动节点不会更新父节点半选状态的 bug
修正完毕,随v3.0正式版发布
20、【修改】treeNode.childs --> children; treeObject.removeChilds --> removeChildNodes; setting.data.key.childs --> children(英文不好惹的祸!抱歉了!)
修正完毕,随v3.0正式版发布
21、【修改】onRemove 回调中得到的 treeNode 还可以查找 preNode、nextNode 的bug。 修正后,getPreNode 和 getNextNode 都返回 null; 为了便于查找父节点,getParentNode 仍保留
修正完毕,随v3.0正式版发布
22、【修改】简单数据模式下,如果 id 与 pId 的值相同会导致该节点无法正常加载的 bug
修正完毕,随v3.0正式版发布
23、【修改】移动或删除中间节点会导致最后一个节点连接线图标变小的 bug
修正完毕,随v3.0正式版发布
评论
我没觉得哪个参数是url必须得
你这种方法我不太建议哟! 虽然软件都是开源的,便于编程者修改,但如果连这种简单的功能都直接在核心文件内修改,是极其不利于 升级的。难不成每次升级你都要找到原先修改的地方去重新修改一遍? 除非你压根不考虑升级那就无所谓了。
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {

不用!!不行吗?
哈哈哈哈,我错了!! 原来你质疑的是 "!!"
应该说更像是个习惯吧,这样会更严谨一些,尤其在赋值的时候,能够保证得到一个boolean的对象.
随便搜了两个文章,说的比较详细:
http://xingda1989.iteye.com/blog/1127781
http://zhidao.baidu.com/question/156360735.html?push=ql
意见随便提,我也不是神仙,zTree能做到现在这样也多亏了大家提意见的。
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {

不用!!不行吗?
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {

我没觉得哪个参数是url必须得
$.ajax({
type: setting.async.type,
url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url),
data: tmpParam,
dataType: setting.async.dataType,
success: function(msg) {
alert(msg)
var newNodes = [];
try {
我alert了msg,显示的就是我要的那段字符串
if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
我在做一个ajax调用,没有成功,不得不通读代码
....
1、关于代码注释的问题,非常非常抱歉,主要还是时间太紧,不过已经是尽可能在页面上加上一些代码的说明, 并且尽可能把每个Demo 做的功能最单一。
2、如果你把 url 换成 test.txt 就能成功,用 tree.do 就不能成功,那么50%的可能是 tree.do 的路径有问题,另外50%的可能是参数传递有误,导致后台报错。
3、请你用 firebug 或 chrome 的开发人员调试工具进行网络监控,看看ajax的异步请求是否正确,提交的参数是否正常,这样很容易就发现问题了。
如果还有问题请继续沟通,不用客气
1、虽然决定权在我,但还要尽可能保证以前的朋友便于升级,方便使用,所以还是要尽可能保留原先的数据格式。
2、autoParam 和 otherParam 是两种参数,一套是动态的,另一套是固定写死的
3、这两个设置只是为了尽可能提供方便,但也不是必须设置的参数,你只需要找寻你习惯使用的方法即可了。
4、你给的例子我也看了一下,一方面不知道如何让用户通过设置,提供 p 的内容? 另一方面貌似没有考虑otherParam 这种固定参数的内容。
我在做一个ajax调用,没有成功,不得不通读代码
我的调用是这样的
index.jsp代码如下
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" href="css/demo.css" type="text/css">
<link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery.ztree.core-3.0.js"></script>
<!-- <script type="text/javascript" src="js/jquery.ztree.excheck-3.0.js"></script>
<script type="text/javascript" src="js/jquery.ztree.exedit-3.0.js"></script>-->
<SCRIPT LANGUAGE="JavaScript">
<!--
var setting = {
treeId:'testtree',
async: {
enable: true,
url:"tree.do"
}
/*,
callback: {
beforeAsync: beforeAsync
}*/
};
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(/\.n/g, '.');
}
return childNodes;
}
function beforeAsync(treeId, treeNode) {
return treeNode ? treeNode.level < 5 : true;
}
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting);
});
//-->
</SCRIPT>
</head>
<body>
<div class="zTreeDemoBackground left">
<ul id="treeDemo" class="ztree"></ul>
</div>
</body>
</html>
tree.do返回的字符串为:
[{name:"f0",childs:[{name:"f01",childs:[{name:"s1"},{name:"s2"}]},{name:"f02",childs:[{name:"s3"},{name:"s4"}]}]}]
始终没有成功
如果用一个固定文件替换tree.do则可以成功,也就是说在index.jsp同目录下放一个tree.txt文件,内容同上,则可以成功
var tmpParam = "";
for (i = 0, l = setting.async.autoParam.length; node && i < l; i++) {
var pKey = setting.async.autoParam[i].split("="), spKey = pKey;
if (pKey.length>1) {
spKey = pKey[1];
pKey = pKey[0];
}
tmpParam += (tmpParam.length > 0 ? "&": "") + spKey + "=" + node[pKey];
}
if (tools.isArray(setting.asyncParamOther)) {
for (i = 0, l = setting.asyncParamOther.length; i < l; i += 2) {
tmpParam += (tmpParam.length > 0 ? "&": "") + setting.async.otherParam[i] + "=" + setting.async.otherParam[i + 1];
}
} else {
for (var p in setting.async.otherParam) {
tmpParam += (tmpParam.length > 0 ? "&" : "") + p + "=" + setting.async.otherParam[p];
}
}
$.ajax({
type: setting.async.type,
url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url),
data: tmpParam,
dataType: setting.async.dataType,
success: function(msg) {
var newNodes = [];
try {
if (!msg || msg.length == 0) {
newNodes = [];
} else if (typeof msg == "string") {
newNodes = eval("(" + msg + ")");
} else {
newNodes = msg;
}
} catch(err) {}
if (node) node.isAjaxing = null;
view.setNodeLineIcos(setting, node);
if (newNodes && newNodes != "") {
newNodes = tools.apply(setting.async.dataFilter, [setting.treeId, node, newNodes], newNodes);
view.addNodes(setting, node, tools.clone(newNodes), !!isSilent);
} else {
view.addNodes(setting, node, [], !!isSilent);
}
setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [setting.treeId, node, msg]);
tools.apply(callback);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
view.setNodeLineIcos(setting, node);
if (node) node.isAjaxing = null;
setting.treeObj.trigger(consts.event.ASYNC_ERROR, [setting.treeId, node, XMLHttpRequest, textStatus, errorThrown]);
}
});
return true;
},
为什么要用两个setting.async.autoParam,setting.async.otherParam
用一个标准的参数形式直接给ajax函数不就ok了吗?
这段代码就是把两个参数的值合并一个参数字符串,给ajax的url吧,用一个解决就可以了啊,什么格式还不是你来定,用两个很费解
var param = [{
name: 'page',
value: p.newp
}, {
name: 'rp',
value: p.rp
}, {
name: 'sortname',
value: p.sortname
}, {
name: 'sortorder',
value: p.sortorder
}, {
name: 'query',
value: p.query
}, {
name: 'qtype',
value: p.qtype
}];
if (p.params) {
for (var pi = 0; pi < p.params.length; pi++) {
param[param.length] = p.params[pi];
}
}
$.ajax({
type: p.method,
url: p.url,
data: param,
dataType: p.dataType,
success: function (data) {
g.addData(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
try {
if (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown);
} catch (e) {}
}
});
你好,autoParam 是动态拼接指定的数据属性当做参数, otherParam 是提供一些固定参数,而不是节点数据属性的数据。另外由于最开始是数组,后来又衍生支持 json 数据所以就成了现在的样子
var param = [{
name: 'page',
value: p.newp
}, {
name: 'rp',
value: p.rp
}, {
name: 'sortname',
value: p.sortname
}, {
name: 'sortorder',
value: p.sortorder
}, {
name: 'query',
value: p.query
}, {
name: 'qtype',
value: p.qtype
}];
if (p.params) {
for (var pi = 0; pi < p.params.length; pi++) {
param[param.length] = p.params[pi];
}
}
$.ajax({
type: p.method,
url: p.url,
data: param,
dataType: p.dataType,
success: function (data) {
g.addData(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
try {
if (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown);
} catch (e) {}
}
});
var tmpParam = "";
for (i = 0, l = setting.async.autoParam.length; node && i < l; i++) {
var pKey = setting.async.autoParam[i].split("="), spKey = pKey;
if (pKey.length>1) {
spKey = pKey[1];
pKey = pKey[0];
}
tmpParam += (tmpParam.length > 0 ? "&": "") + spKey + "=" + node[pKey];
}
if (tools.isArray(setting.asyncParamOther)) {
for (i = 0, l = setting.asyncParamOther.length; i < l; i += 2) {
tmpParam += (tmpParam.length > 0 ? "&": "") + setting.async.otherParam[i] + "=" + setting.async.otherParam[i + 1];
}
} else {
for (var p in setting.async.otherParam) {
tmpParam += (tmpParam.length > 0 ? "&" : "") + p + "=" + setting.async.otherParam[p];
}
}
$.ajax({
type: setting.async.type,
url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url),
data: tmpParam,
dataType: setting.async.dataType,
success: function(msg) {
var newNodes = [];
try {
if (!msg || msg.length == 0) {
newNodes = [];
} else if (typeof msg == "string") {
newNodes = eval("(" + msg + ")");
} else {
newNodes = msg;
}
} catch(err) {}
if (node) node.isAjaxing = null;
view.setNodeLineIcos(setting, node);
if (newNodes && newNodes != "") {
newNodes = tools.apply(setting.async.dataFilter, [setting.treeId, node, newNodes], newNodes);
view.addNodes(setting, node, tools.clone(newNodes), !!isSilent);
} else {
view.addNodes(setting, node, [], !!isSilent);
}
setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [setting.treeId, node, msg]);
tools.apply(callback);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
view.setNodeLineIcos(setting, node);
if (node) node.isAjaxing = null;
setting.treeObj.trigger(consts.event.ASYNC_ERROR, [setting.treeId, node, XMLHttpRequest, textStatus, errorThrown]);
}
});
return true;
},
为什么要用两个setting.async.autoParam,setting.async.otherParam
用一个标准的参数形式直接给ajax函数不就ok了吗?
[object][object]说明数据确实传递过来了。
但是我需要具体的数据,这如何把它提取出来。请问有这方面的示例代码么?我找了很久也没找到。
谢谢。我用的是V2.6 版本。
你好,传递给后台的肯定是字符串,不可能直接把对象传过去的。 请你google 一下“如何将json对象传给后台”
[object][object]说明数据确实传递过来了。
但是我需要具体的数据,这如何把它提取出来。请问有这方面的示例代码么?我找了很久也没找到。
谢谢。我用的是V2.6 版本。
<SCRIPT LANGUAGE="JavaScript"> <!-- var setting = { async: { enable: true, url:"../asyncData/getNodes.php", autoParam:["id", "name=n"], otherParam:{"otherParam":"zTreeAsyncTest"}, dataFilter: filter }, callback: { beforeAsync: beforeAsync, [color=red]OnAsyncSuccess:tt[/color] } }; 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(/\.n/g, '.'); } return childNodes; } function beforeAsync(treeId, treeNode) { return true; return treeNode ? treeNode.level < 5 : true; } [color=red]function tt(event, treeId, treeNode, msg) {[/color] alert(msg); document.write(msg); }; $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting); }); //--> </SCRIPT>
OnAsyncSuccess 回调函数不被触发,求原因!
你好,请注意大小写(细节决定成败!)
是 onAsyncSuccess
发表评论
-
JQuery Tree插件——zTree v3.5.16 版 发布
2014-03-09 20:09 33239zTree v3.5.16 发布,继续缓慢的修正 bug ... -
JQuery Tree插件——zTree v3.5.15 版 发布
2013-10-21 09:30 14137zTree v3.5.15 发布,继续 ... -
JQuery Tree插件——zTree v3.5.14 版 发布
2013-06-29 00:36 7063在 v3.5.13 中由于个人疏漏,产生了一个比较严重 ... -
JQuery Tree插件——zTree v3.5.13 版 发布
2013-06-02 21:43 6699近期由于工作繁忙,所以一直没有发布 v3.5.13 ... -
JQuery Tree插件——zTree v3.5.12 版 发布
2013-03-11 11:13 13319为了学习如何在 jQuery Plugin 发布,反 ... -
JQuery Tree插件——zTree v3.5.02 版 发布
2013-01-28 10:34 10544首先要告诉大家,在 jQuery 发布了插件注册功能 ... -
zTree v3.5 Css 详解
2012-12-24 09:37 18122zTree 的 css 文件 ... -
JQuery Tree插件——zTree v3.5.01 版 发布
2012-12-21 10:37 3815赶着天黑前,赶紧发布 v3.5 的补丁,修正目前 ... -
JQuery Tree插件——zTree v3.5 正式版 发布
2012-11-20 09:50 14186由于国庆之后一直忙于公司的项目,因此将 zTre ... -
JQuery Tree插件——zTree v3.4 正式版 发布
2012-09-03 10:55 7535这次 v3.4 主要还是修改一些细节 bug, ... -
JQuery Tree插件——zTree v3.3 正式版 发布
2012-07-16 12:54 8885这次 zTree v3.3 继续 ... -
简述如何制作 zTree v3.x 系列的扩展 js 库
2012-06-29 15:31 3060zTree v3.x 版本修改了结构,将原先混在 ... -
JS 代码调试经验总结(菜鸟必读)
2012-06-12 18:03 20011前言:不知不觉写了很多,希望你能耐心看完这篇文章 ... -
启用新域名—— zTree.me
2012-05-24 14:11 2145折腾一上午,终于启用 新域名 zTree.me 欢迎各 ... -
JQuery Tree插件——zTree v3.2 正式版 发布
2012-05-14 13:53 7032因最近本人工作较忙,所以 v3.2 拖了很久,还 ... -
JQuery Tree插件——zTree v3.1 正式版 发布
2012-02-14 10:22 17085选在情人节发布 zTree v3.1,希望 zT ... -
CSS Sprites 使用注意之—— 避免因浏览器放大导致的图片异常
2012-02-02 14:34 2751近日有朋友说,将浏览器放大后,会发现 zTree 出现 ... -
IE 下 css 设置透明度造成 input 内光标异常的问题
2012-02-01 14:01 4123zTree v3.0 正式版发 ... -
zTree v2.x 升级 v3.0 之 异步加载 与 添加节点的错误分析
2012-01-13 16:34 4477(补充: 计划 v3.1 中修改进行异步加载的逻辑 ... -
JQuery Tree插件——zTree v3.0 正式版 发布
2012-01-10 09:39 6465在大家的帮助 和 关注下,今天 zTree v3 ...
相关推荐
zTree v3.0 正式版在功能、性能方便比 v2.x 版本都有了很多改善,尤其是性能方面。 但还要再提提醒大家,v3.0 在代码架构上的改动较大,所以升级 v2.x 版本的 zTree 必须要配合修改代码,不能仅仅升级 js 文件。
zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件。它与 IE、FireFox、Chrome 等浏览器保持兼容,在一个页面内可同时生成多个Tree 实例,支持一次性静态生成和Ajax 异步加载两种方式,...
**zTree 3.0 实例详解** zTree是一款基于JavaScript的树形插件,广泛应用于网页中的数据展示,如文件目录、组织架构等场景。zTree 3.0是其一个重要的版本,提供了丰富的功能和高度的自定义性。在实际开发中,拥有...
**jQuery zTree v2.6 Beta 知识点详解** jQuery zTree 是一个基于 jQuery 的开源项目,专门用于实现交互式树形菜单。在 v2.6 beta 版本中,它提供了丰富的功能和优化,使得在网页开发中构建动态、可操作的树形结构...
zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载 采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器 支持 JSON 数据 ...
《JQuery zTree v2.6:文档与经典实例解析》 JQuery zTree是一款基于JavaScript的树形插件,其v2.6版本在功能和性能上进行了优化,为开发者提供了更强大的树形结构处理能力。这个版本的zTree不仅包含了完整的API...
zTree v3.3是该插件的一个版本,它在前一版本的基础上进行了优化和增强,旨在提供更高效、更稳定的服务。 在zTree v3.3中,核心功能包括: 1. **树结构展示**:zTree能够轻松地将复杂的数据结构转化为用户友好的...
、zTree v3.0 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 Dom。 2)、对于每级节点最多一百左右,但总节点数几千甚至几万,且不是全部展开的数据,一次性加载的...
•zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载 •采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀 •兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器 •支持 ...
**zTree v3.5.37 API 文档** zTree 是一款基于 jQuery 的树形插件,广泛应用于网页中的树形菜单、目录结构展示等场景。v3.5.37 版本的 API 文档是理解并有效利用 zTree 功能的关键。 **一、设置(Setting)配置...
**jQuery zTree v3.5.14** 是一个基于jQuery的树形插件,它在Web开发中广泛用于创建交互式的树形结构。这个版本3.5.14是zTree的一个稳定版本,提供了丰富的功能和优化的性能。下面我们将深入探讨zTree的核心特性、...
《JQuery zTree v3.5.47:构建动态树形菜单的利器》 JQuery zTree是一款基于JavaScript的开源库,专用于构建交互式的树形菜单。在这个版本v3.5.47中,它继续提供高效、灵活且功能丰富的解决方案,尤其适用于网页中...
zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载 采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器 支持 JSON ...
10. **更新日志**:`更新日志3.x.txt` 文件记录了 v3.4 版本的改动和改进,这对于了解新功能和修复的 bug 非常有帮助。 11. **文件结构**: - `api`:包含了 zTree 的 API 文档,详细解释了每个方法和参数的用途。...
zTree v3.3 API帮助 根据官方网站提供的帮助制作 因为原始文档不能直接在本地打开帮助查看麻烦,所以制作成了chm格式
**jQuery zTree v2.6 基本用法实例** zTree是一款基于jQuery的树形插件,广泛应用于网站的导航、组织结构展示、权限管理等场景。它提供了丰富的API和CSS样式,使得开发者可以方便地进行定制化开发。在v2.6版本中,...
《JQuery zTree v2.6 - 构建交互式树形菜单的高效工具》 JQuery zTree是一款基于jQuery库的开源项目,用于构建功能丰富的树形菜单。在v2.6版本中,它提供了更为强大的功能和优化的性能,以满足网页开发中对于动态...
zTree是一款广泛应用于Web开发中的JavaScript树形菜单插件,其最新版本为zTree_v3.5.17。这个插件以其强大的功能、灵活的配置选项和良好的用户体验深受开发者喜爱。在本压缩包中,你将获得zTree的核心源码,以便于你...