首先要告诉大家,在 jQuery 发布了插件注册功能后,zTree 也已经发布到了 jQuery 的 Plugins 内,同时也在 Github 上进行了发布(不过近期敏感事件期间 github 一会儿能访问一会儿又不能访问,建议大家还是苦练翻那个什么Wall的本领吧,呵呵)。
jQuery Plugin:http://plugins.jquery.com/zTree.v3/
GitHub:https://github.com/zTree/zTree_v3
这次修正的内容应该还是挺重要的,特别是删除了 jQuery.browser() 的使用,保证了对 jQuery 1.9 的兼容;
另外修改了 checkbox/radio 的 disabled 功能,对于那些希望父节点 禁用 checkbox 但子节点依然使用 checkbox 的同志们,赶紧升级吧!
同时,还要非常感谢一位热心的朋友(XLiming),让我远程登录调试了 IE10 下 异步加载的问题,经过测试以及网上搜索,发现这是 IE10 的一个严重 bug —— ajax 提交请求 type = "post" 时会发现参数无法传到后台。
这样结果就是 —— 异步加载时展开节点总是得到根节点,从而导致逐层展开的都是根节点数据,然后就死循环下去了。
更严重的情况是 —— 对于 异步加载模式下全部展开 的 Demo 来说,一旦用 IE10 访问,就会导致死循环崩溃的。。。。所以我现在已经将 Demo 修改为 "get" 的方式。 请有类似使用的朋友都要注意一下了!
相关 IE10 post 参数丢失 bug 的信息可以参考页面:http://bugs.jquery.com/ticket/12790
对于 zTree 新版本的重构仍在酝酿,如果大家有什么想法、建议,也非常欢迎与我进行沟通。
zTree 在线操作演示:http://www.ztree.me/v3/demo.php#_101
zTree 快速下载地址:http://code.google.com/p/jquerytree/downloads/list
下面是 v3.5.02 的修改记录:
- 【增加】setting.check.chkDisabledInherit 属性,用于设置 chkDisabled 在初始化时子节点是否可以继承父节点的 chkDisabled 属性
- 【删除】内部 noSel 方法,使用 selectstart事件和 "-moz-user-select"样式处理禁止节点文字被选择的功能
- 【修改】不兼容 jQuery 1.9 的bug
- 【修改】onDrop 的触发规则,保证异步加载模式下,可以在延迟加载结束后触发,避免 onDrop 中被拖拽的节点是已经更新后的数据。
- 【修改】setChkDisabled 方法,增加 inheritParent, inheritChildren 参数设置是否让父子节点继承 disabled
- 【修改】异步加载时拼接参数的方法,由 string 修改为 json 对象
- 【修正】1-2-3 3级节点时,如果 2级节点全部设置为 nocheck 或 chkDisabled后,勾选3级节点时,1级节点的半勾选状态错误的 bug
- 【修改】Demo: checkbox_nocheck.html & checkbox_chkDisabled.html;
- 【修改】Demo: edit_super.html,增加 showRenameBtn & showRemoveBtn 的演示
- 【修改】Demo: asyncForAll, 将 post 修改为 get;为了避免由于 IE10 的 bug 造成的客户端以及服务端崩溃。IE10 ajax Post 无法提交参数的bug (http://bugs.jquery.com/ticket/12790)