首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

JQuery Tree插件——zTree v3.5 正式版 公布

2012-12-03 
JQuery Tree插件——zTree v3.5 正式版 发布? ? 由于国庆之后一直忙于公司的项目,因此将 zTree 闲置了1个月

JQuery Tree插件——zTree v3.5 正式版 发布

? ? 由于国庆之后一直忙于公司的项目,因此将 zTree 闲置了1个月左右。


? ? 这次升级继续以修正 bug 为主,这里要非常感谢各位用户的支持,这次修改的很多 bug 都是大家在使用过程中反映给我的。

?

JQuery Tree插件——zTree v3.5 正式版 公布

? ??

? ? zTree 目前已经能够满足绝大部分树形需求的操作,对于一棵单纯的树来说,基本可以到此为止了。所以以后 v3.x 版本也都不会增加新功能了,但会继续保持 bug 的修正,如果你发现 zTree 的 bug 还请及时告诉我。(结束只代表着新的开始....)


? ? 在 zTree 不断完善的过程中,更加深刻的体会到架构的重要性,而架构主要体现在代码的灵活性、扩展性 以及代码的优化,要想开发出更多更好的功能,那么我必须要首先从架构上认真思考和探索,至于下一步到底会做出个什么东西来,我自己还不能完全确定,但首先肯定还是以 树 当做我的案例,对心中这样一个架构进行尝试,希望以后可以实现一套轻松搭建各种类似于树、菜单 以及 各种 Map 的 js 控件。 如果大家有什么想法、建议,也非常欢迎与我进行沟通。


? ? zTree 在线操作演示:http://www.ztree.me/v3/demo.php#_101


? ? zTree 快速下载地址:http://code.google.com/p/jquerytree/downloads/list


? ? 下面是 v3.5 的修改记录:

? ?* 【优化】原先的 clone 方法 (特别感谢:愚人码头)

? ?* 【修改】隐藏父节点后,使用 expandAll 方法导致 父节点展开的 bug

? ?* 【修改】使用 jQuery v1.7 以上时,设置 zTree 容器 ul 隐藏(visibility: hidden;)后, 调用 selectNode 导致 IE 浏览器报错 Can't move focus 的 bug

? ?* 【修改】正在异步加载时,执行 destory 或 init 方法后,异步加载的节点影响新树的 bug

? ?* 【修改】方法 reAsyncChildNodes 在 refresh 的时候未清空内部 cache 导致内存泄露 的 bug

? ?* 【修改】批量节点拖拽到其他父节点内(inner)时,导致顺序反转 的 bug

? ?* 【修改】对于 使用 html格式的 节点无法触发 双击事件 的 bug

? ?* 【修改】onCheck 回调中的 event ,保证与触发事件中的 event 一致

? ?* 【修改】异步加载时,在 onNodeCreated 中执行 selectNode 后,导致节点折叠的 bug

? ?* 【修改】API 中 dataFilter 的参数名称 childNodes -> ?responseData

? ?* 【修改】API 中 iconSkin 的 举例内容

? ?* 【修改】API 中 chkDisabled 的说明

? ?* 【修改】Demo 中 index.html 内的 loadReady 重复绑定问题


好厉害,首先谢谢作者提供这么好的树形控件。
我在使用中遇到一些问题,想请教一下作者。
今天就先问问,异步传参乱码问题。公司的项目都是GBK编码的,url指向action后获取的中文的name参数为乱码。
//               String name1 =new String(name.getBytes("ISO-8859-1"), "UTF-8");
//               String name2 =new String(name.getBytes("ISO-8859-1"), "GBK");
//               String name3 =new String(name.getBytes("GBK"), "UTF-8");
//               String name4 =new String(name.getBytes("GBK"), "ISO-8859-1");
//               String name9 =new String(name4.getBytes("ISO-8859-1"), "UTF-8");
//               String name5 =new String(name.getBytes("UTF-8"), "GBK");
//               String name6 =new String(name.getBytes("UTF-8"), "ISO-8859-1");
//               String name7 =name = java.net.URLDecoder.decode(name,"GBK");
//               String name8 =name = java.net.URLDecoder.decode(name,"utf-8");
使用这些方式转码,还是乱码,只有name3 为部分中文加框和问号。

用url=encodeURI(encodeURI(url)); String name8 =name = java.net.URLDecoder.decode(name,"utf-8");
并不能对name起作用。一直试了很久都快放弃使用ztree的时候发现了type:"get",
然后用name = new String(name.getBytes( "ISO-8859-1" ), "GBK");转码成功。

虽然问题解决了,但我在想有没有其他的方式呢?
比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

6 楼 zTreeAPI 2012-11-21   guodefu909 写道...比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

编码混乱的时候的确容易出错, 后台解析时往往还会牵扯到 服务器的配置; 这里面解决方案也不少,网上就能找到很多。 另外看看能否让你们公司的项目以后都全部改用 utf-8 呢? 其实这样更标准,更容易减少乱码的情况。
7 楼 guodefu909 2012-11-22   zTreeAPI 写道guodefu909 写道...比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

编码混乱的时候的确容易出错, 后台解析时往往还会牵扯到 服务器的配置; 这里面解决方案也不少,网上就能找到很多。 另外看看能否让你们公司的项目以后都全部改用 utf-8 呢? 其实这样更标准,更容易减少乱码的情况。

都是老项目了,不会让换的,用的框架还是struts1,连接数据库用的jdbc,spring也没用,我提出来换新框架,别人都说不可能。。。

8 楼 guodefu909 2012-11-22   今天用了下全部展开和保持单一路径展开功能,但是才500多个节点,(异步获取的),就出现假死卡壳现象,有没有什么办法让他平滑的展开折叠呢? 9 楼 zTreeAPI 2012-11-22   guodefu909 写道今天用了下全部展开和保持单一路径展开功能,但是才500多个节点,(异步获取的),就出现假死卡壳现象,有没有什么办法让他平滑的展开折叠呢?

是否由于异步加载慢导致的呢?

请参考 Demo:http://www.ztree.me/v3/demo.php#_512

我觉得不应该像你说的那么假死、卡住的。 10 楼 zTreeAPI 2012-11-22   guodefu909 写道zTreeAPI 写道guodefu909 写道...比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

编码混乱的时候的确容易出错, 后台解析时往往还会牵扯到 服务器的配置; 这里面解决方案也不少,网上就能找到很多。 另外看看能否让你们公司的项目以后都全部改用 utf-8 呢? 其实这样更标准,更容易减少乱码的情况。

都是老项目了,不会让换的,用的框架还是struts1,连接数据库用的jdbc,spring也没用,我提出来换新框架,别人都说不可能。。。


这种项目以前怎么用 ajax 与后台进行通信的呢? 肯定也会有提交中文的情况吧。。找找是怎么解决的。 11 楼 zTreeAPI 2012-11-22   zTreeAPI 写道guodefu909 写道今天用了下全部展开和保持单一路径展开功能,但是才500多个节点,(异步获取的),就出现假死卡壳现象,有没有什么办法让他平滑的展开折叠呢?

是否由于异步加载慢导致的呢?

请参考 Demo:http://www.ztree.me/v3/demo.php#_512

我觉得不应该像你说的那么假死、卡住的。
忘了问了,别是用的很老版本的 zTree 吧? 12 楼 guodefu909 2012-11-23   zTreeAPI 写道zTreeAPI 写道guodefu909 写道今天用了下全部展开和保持单一路径展开功能,但是才500多个节点,(异步获取的),就出现假死卡壳现象,有没有什么办法让他平滑的展开折叠呢?

是否由于异步加载慢导致的呢?

请参考 Demo:http://www.ztree.me/v3/demo.php#_512

我觉得不应该像你说的那么假死、卡住的。
忘了问了,别是用的很老版本的 zTree 吧?


3.4的 13 楼 guodefu909 2012-11-23   zTreeAPI 写道guodefu909 写道zTreeAPI 写道guodefu909 写道...比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

编码混乱的时候的确容易出错, 后台解析时往往还会牵扯到 服务器的配置; 这里面解决方案也不少,网上就能找到很多。 另外看看能否让你们公司的项目以后都全部改用 utf-8 呢? 其实这样更标准,更容易减少乱码的情况。

都是老项目了,不会让换的,用的框架还是struts1,连接数据库用的jdbc,spring也没用,我提出来换新框架,别人都说不可能。。。


这种项目以前怎么用 ajax 与后台进行通信的呢? 肯定也会有提交中文的情况吧。。找找是怎么解决的。


用的都是这种方法:url=encodeURI(encodeURI(url)); String name8 =name = java.net.URLDecoder.decode(name,"utf-8");

但是这种我不知道怎么把name等参数加到url后面,然后编码 14 楼 zTreeAPI 2012-11-23   guodefu909 写道zTreeAPI 写道zTreeAPI 写道guodefu909 写道今天用了下全部展开和保持单一路径展开功能,但是才500多个节点,(异步获取的),就出现假死卡壳现象,有没有什么办法让他平滑的展开折叠呢?

是否由于异步加载慢导致的呢?

请参考 Demo:http://www.ztree.me/v3/demo.php#_512

我觉得不应该像你说的那么假死、卡住的。
忘了问了,别是用的很老版本的 zTree 吧?


3.4的
你看看我提供的Demo 是否会有假死的情况吗? 15 楼 zTreeAPI 2012-11-23   guodefu909 写道zTreeAPI 写道guodefu909 写道zTreeAPI 写道guodefu909 写道...比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

编码混乱的时候的确容易出错, 后台解析时往往还会牵扯到 服务器的配置; 这里面解决方案也不少,网上就能找到很多。 另外看看能否让你们公司的项目以后都全部改用 utf-8 呢? 其实这样更标准,更容易减少乱码的情况。

都是老项目了,不会让换的,用的框架还是struts1,连接数据库用的jdbc,spring也没用,我提出来换新框架,别人都说不可能。。。


这种项目以前怎么用 ajax 与后台进行通信的呢? 肯定也会有提交中文的情况吧。。找找是怎么解决的。


用的都是这种方法:url=encodeURI(encodeURI(url)); String name8 =name = java.net.URLDecoder.decode(name,"utf-8");

但是这种我不知道怎么把name等参数加到url后面,然后编码
你利用 zTree 中 url 可以是 function 的方法自行处理成你们的方案就是了,就别使用 Param的设置了 16 楼 guodefu909 前天   zTreeAPI 写道guodefu909 写道zTreeAPI 写道zTreeAPI 写道guodefu909 写道今天用了下全部展开和保持单一路径展开功能,但是才500多个节点,(异步获取的),就出现假死卡壳现象,有没有什么办法让他平滑的展开折叠呢?

是否由于异步加载慢导致的呢?

请参考 Demo:http://www.ztree.me/v3/demo.php#_512

我觉得不应该像你说的那么假死、卡住的。
忘了问了,别是用的很老版本的 zTree 吧?


3.4的
你看看我提供的Demo 是否会有假死的情况吗?


应该说是不平滑,全部展开时(数据加载完毕)不是一个一个打开,而是看不到过程,过2、3秒后突然一下打开,设置view: {expandSpeed: "slow"}也只是影响点击事件,不影响全部展开折叠事件。其实整体用时稍微长点,但是视觉上分布打开,而不是一下子打开,给客户的体验反而更好


另外,3.4版的隐藏节点函数用不了,不知道怎么回事 17 楼 guodefu909 前天   zTreeAPI 写道guodefu909 写道zTreeAPI 写道guodefu909 写道zTreeAPI 写道guodefu909 写道...比如说,能不能将name放到url中用url=encodeURI(encodeURI(url));统一转码呢?
又比如说, String name3 =new String(name.getBytes("GBK"), "UTF-8"); 结果为部分中文,有没有办法彻底转为中文呢?

编码混乱的时候的确容易出错, 后台解析时往往还会牵扯到 服务器的配置; 这里面解决方案也不少,网上就能找到很多。 另外看看能否让你们公司的项目以后都全部改用 utf-8 呢? 其实这样更标准,更容易减少乱码的情况。

都是老项目了,不会让换的,用的框架还是struts1,连接数据库用的jdbc,spring也没用,我提出来换新框架,别人都说不可能。。。


这种项目以前怎么用 ajax 与后台进行通信的呢? 肯定也会有提交中文的情况吧。。找找是怎么解决的。


用的都是这种方法:url=encodeURI(encodeURI(url)); String name8 =name = java.net.URLDecoder.decode(name,"utf-8");

但是这种我不知道怎么把name等参数加到url后面,然后编码
你利用 zTree 中 url 可以是 function 的方法自行处理成你们的方案就是了,就别使用 Param的设置了

那怎么获取name属性呢?getCheckedNodes?getSelectedNodes? 18 楼 zTreeAPI 4 小时前   guodefu909 写道....那怎么获取name属性呢?getCheckedNodes?getSelectedNodes?

得到的节点数据都是 之前生成的 json 对象,直接 treeNode.name 就可以了 19 楼 guodefu909 4 小时前   removeNode能用,就用不了,已经更新到3.5了,还是不能隐藏节点 20 楼 zTreeAPI 4 小时前   guodefu909 写道removeNode能用,就用不了,已经更新到3.5了,还是不能隐藏节点
请问你是否加载了exhide 的js 扩展包? 21 楼 sunarrow 3 小时前   很好的东东啊,请问楼主,怎么样把图标的大小调大啊,比如调成24*24,看上去大气些,或者有没有比能直接通过一个属性就可以换皮肤的。在你的DEMO里没找着 22 楼 guodefu909 2 小时前   jquery.ztree.all-3.4.min.js
并没有包含全部的功能吗?
没有包含jquery.ztree.exhide-3.4.min.js?
我之前试着隐藏节点,怎么都不成功,刚才试了下引入jquery.ztree.exhide-3.4.min.js就可以了。
这是怎么回事?介绍里面有说明吗? 23 楼 zTreeAPI 2 小时前   guodefu909 写道jquery.ztree.all-3.4.min.js
并没有包含全部的功能吗?
没有包含jquery.ztree.exhide-3.4.min.js?
我之前试着隐藏节点,怎么都不成功,刚才试了下引入jquery.ztree.exhide-3.4.min.js就可以了。
这是怎么回事?介绍里面有说明吗?
在 v3.3 的发布文章中有说明:
请注意:jquery.ztree.all 文件中 仅仅包含 core、excheck、exedit 这三个 js 包; 对于 exhide 以及以后推出的 扩展包都不会包含在 jquery.ztree.all 文件中。
如果需要使用,请自行添加。
24 楼 zTreeAPI 2 小时前   sunarrow 写道很好的东东啊,请问楼主,怎么样把图标的大小调大啊,比如调成24*24,看上去大气些,或者有没有比能直接通过一个属性就可以换皮肤的。在你的DEMO里没找着
原先 v2.x 版本中有多种比例的图标,做 v3 后由于时间关系一直没能制作这种Demo; 其实需要调整图标大小,也就是更换 img 以及调整 css 就可以了,对于js 不需要任何改变

热点排行