- 浏览: 345691 次
- 性别:
- 来自: 北京
最新评论
-
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正式版发布
评论
参考demo中
构建树的代码
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
获得树对象的代码
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
感觉这种方式 是不是 可以考虑 修改为类似于
var zTree= $("#treeDemo").ztree({setting:setting,nodeData:zNodes});
大多jQuery 插件使用这种方式,如 jquery UI
建议保留这种习惯吧!
removeNode效果是有的,但是在firefox中报了is not a function错误
2、手动触发click节点的js楼主给下代码呢
1、请确认你用来 remove 的node 数据是从zTree 内部获取的。
2、手动触发 click,没有现成的代码,还请自己学习实践一下。
关于手动触发 click 事件,大概方法。
(1) 直接用js 的fireEvent 方法或者 用jQuery 的trigger 方法实现你的需求。(如何实现可以去 google 搜索 jQuery 的trigger)
(2) 直接用js 调用onclick 方法,同时利用 selectNode 方法选中你的目标节点。
这个就是用js 去调用 onClick回调指定的那个函数即可,传入对应的参数。 selectNode 去看看API如何使用。
removeNode效果是有的,但是在firefox中报了is not a function错误
2、手动触发click节点的js楼主给下代码呢
tree.removeNode(nodes[0]);
显示错误: tree.removeNode is not a function
你的tree 是什么对象? 怎么得到的? 正确的treeObj 得到的方法有两个:
1、初始化语句 返回的结果
2、通过 $.fn.zTree.getZTreeObj 方法获取
tree.removeNode(nodes[0]);
显示错误: tree.removeNode is not a function
1、关于手动触发 click事件,因为不清楚你具体的需求,大概讲解一下方法。
(1) 直接用js 的fireEvent 方法或者 用jQuery 的trigger 方法实现你的需求。
(2) 直接用js 调用onclick 方法,同时利用 selectNode 方法选中你的目标节点
2、关于获取子节点
v3.0 beta 可以看 setting.data.key.childs 这个属性。 如果你没有设置,那么默认子节点都是 treeNode.childs 属性内。 但正式版发布时会将 childs 修改为 children 。
如果你还在用 v2.6 那么默认的就是 nodes 属性
function clickNode(event, treeId, treeNode){ tree.selectNode(treeNode); parent.changeSysMenu(treeNode.value); } var tree; var setting = { async: {enable: true,url: getUrl}, callback: { onClick: clickNode, onExpand: clickNode, onCollapse: clickNode } }; function clickNode(event, treeId, treeNode){ tree.selectNode(treeNode); parent.changeSysMenu(treeNode.value); } var tree; var setting = { async: {enable: true,url: getUrl}, callback: { onClick: clickNode, onExpand: clickNode, onCollapse: clickNode } };
我在点击节点时触发clickNode函数,然后调用另一个函数更改一个页面地址
我如何通过js手动触发onclick事件
问题解决了。要加上http://才是绝对路径。自己蠢了。
你好, 对于 zTree 本身来说右键没有任何功能! zTree 只不过提供了 右键的回调函数,Demo中只是为了演示如何监控右键的操作。
关于添加子节点:
如果你是自己写逻辑,添加子节点,那么你必须要在添加子节点之前判断是否该子节点已经添加。 如果你用了zTree提供的异步加载功能,那么不会重复进行异步加载。 这个具体问题要看你的实际需求而定。
补充: 同一个问题请不要再每个地方都发一遍,谢谢。
代码如下:
function nodeClick() { var zTreeObj=$.fn.zTree.getZTreeObj("DeptTree"); var selectNode=zTreeObj.getSelectedNodes(); var id=selectNode[0].id; var zNodes=new Array(); $.ajax({ async : false, cache:false, type: 'GET', dataType : "text/xml", url: "http://localhost:8080/BSFRAME/selectdept.do?method=AsyncNode&id=" + id,//请求的action路径 error: function () {//请求失败处理函数 alert('请求失败'); }, success:function(data){ //请求成功后处理函数。 var nodes=dealData(data); for(var i=0;i<nodes.length;i++) { var node="{\"id\":\"" +nodes[i].id + "\",\"pId\":\"" + nodes[i].superid + "\",\"name\":\"" + nodes[i].text + "\"}"; var obj=eval('(' + node + ')'); zNodes.push(obj); } } }); alert("aaa"); zNodes=[{id:"12345",pId:"000002",text:"单位22"}]; newNodes=zTreeObj.addNodes(setting,selectNode[0],zNodes,true); }
能运行到alert("aaa");,就是最后一句报错。
我试过newNodes=zTreeObj.addNodes(selectNode[0],zNodes,true);也是报同样的错误。
另有一个问题请教,通过点击一个节点来添加子节点,会不会每次点击都添加一遍?如何避免这种问题?
JS出错的问题解决了,是少包含了一个JS文件。但是其他问题还得请教。
代码如下:
function nodeClick() { var zTreeObj=$.fn.zTree.getZTreeObj("DeptTree"); var selectNode=zTreeObj.getSelectedNodes(); var id=selectNode[0].id; var zNodes=new Array(); $.ajax({ async : false, cache:false, type: 'GET', dataType : "text/xml", url: "http://localhost:8080/BSFRAME/selectdept.do?method=AsyncNode&id=" + id,//请求的action路径 error: function () {//请求失败处理函数 alert('请求失败'); }, success:function(data){ //请求成功后处理函数。 var nodes=dealData(data); for(var i=0;i<nodes.length;i++) { var node="{\"id\":\"" +nodes[i].id + "\",\"pId\":\"" + nodes[i].superid + "\",\"name\":\"" + nodes[i].text + "\"}"; var obj=eval('(' + node + ')'); zNodes.push(obj); } } }); alert("aaa"); zNodes=[{id:"12345",pId:"000002",text:"单位22"}]; newNodes=zTreeObj.addNodes(setting,selectNode[0],zNodes,true); }
能运行到alert("aaa");,就是最后一句报错。
我试过newNodes=zTreeObj.addNodes(selectNode[0],zNodes,true);也是报同样的错误。
另有一个问题请教,通过点击一个节点来添加子节点,会不会每次点击都添加一遍?如何避免这种问题?
OMG,建议不要这么做,因为 zTree 的复选框根本不是标准的checkbox 、radio 控件。
你利用treeNode 数据拼接字符串传给后台就是了。
发表评论
-
JQuery Tree插件——zTree v3.5.16 版 发布
2014-03-09 20:09 33141zTree v3.5.16 发布,继续缓慢的修正 bug ... -
JQuery Tree插件——zTree v3.5.15 版 发布
2013-10-21 09:30 14114zTree v3.5.15 发布,继续 ... -
JQuery Tree插件——zTree v3.5.14 版 发布
2013-06-29 00:36 7034在 v3.5.13 中由于个人疏漏,产生了一个比较严重 ... -
JQuery Tree插件——zTree v3.5.13 版 发布
2013-06-02 21:43 6661近期由于工作繁忙,所以一直没有发布 v3.5.13 ... -
JQuery Tree插件——zTree v3.5.12 版 发布
2013-03-11 11:13 13241为了学习如何在 jQuery Plugin 发布,反 ... -
JQuery Tree插件——zTree v3.5.02 版 发布
2013-01-28 10:34 10491首先要告诉大家,在 jQuery 发布了插件注册功能 ... -
zTree v3.5 Css 详解
2012-12-24 09:37 18006zTree 的 css 文件 ... -
JQuery Tree插件——zTree v3.5.01 版 发布
2012-12-21 10:37 3765赶着天黑前,赶紧发布 v3.5 的补丁,修正目前 ... -
JQuery Tree插件——zTree v3.5 正式版 发布
2012-11-20 09:50 13985由于国庆之后一直忙于公司的项目,因此将 zTre ... -
JQuery Tree插件——zTree v3.4 正式版 发布
2012-09-03 10:55 7496这次 v3.4 主要还是修改一些细节 bug, ... -
JQuery Tree插件——zTree v3.3 正式版 发布
2012-07-16 12:54 8734这次 zTree v3.3 继续 ... -
简述如何制作 zTree v3.x 系列的扩展 js 库
2012-06-29 15:31 3005zTree v3.x 版本修改了结构,将原先混在 ... -
JS 代码调试经验总结(菜鸟必读)
2012-06-12 18:03 19951前言:不知不觉写了很多,希望你能耐心看完这篇文章 ... -
启用新域名—— zTree.me
2012-05-24 14:11 2121折腾一上午,终于启用 新域名 zTree.me 欢迎各 ... -
JQuery Tree插件——zTree v3.2 正式版 发布
2012-05-14 13:53 6929因最近本人工作较忙,所以 v3.2 拖了很久,还 ... -
JQuery Tree插件——zTree v3.1 正式版 发布
2012-02-14 10:22 16950选在情人节发布 zTree v3.1,希望 zT ... -
CSS Sprites 使用注意之—— 避免因浏览器放大导致的图片异常
2012-02-02 14:34 2719近日有朋友说,将浏览器放大后,会发现 zTree 出现 ... -
IE 下 css 设置透明度造成 input 内光标异常的问题
2012-02-01 14:01 4101zTree v3.0 正式版发 ... -
zTree v2.x 升级 v3.0 之 异步加载 与 添加节点的错误分析
2012-01-13 16:34 4458(补充: 计划 v3.1 中修改进行异步加载的逻辑 ... -
JQuery Tree插件——zTree v3.0 正式版 发布
2012-01-10 09:39 6389在大家的帮助 和 关注下,今天 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 将核心代码按照功能进行了分割,不需要的代码可以不用加载 •采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀 •兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器 •支持 ...
、zTree v3.0 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 Dom。 2)、对于每级节点最多一百左右,但总节点数几千甚至几万,且不是全部展开的数据,一次性加载的...
**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的核心特性、...
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的核心源码,以便于你...
**jQuery zTree v3.1 完整API详解** `jQuery zTree` 是一个基于 jQuery 的强大树形插件,广泛应用于网站导航、组织结构展示、文件管理等场景。v3.1 版本提供了丰富的功能和完善的API,使得开发者能够更加灵活地定制...