`
zTreeAPI
  • 浏览: 340116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JQuery Tree插件——zTree v3.5.02 版 发布

阅读更多

    首先要告诉大家,在 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)

 

分享到:
评论
26 楼 clear_yang 2016-11-17  
jquery.ztree.excheck.min.js:15 Uncaught TypeError: Cannot read property 'consts' of undefined

报了这个错误,请问是什么原因
25 楼 chinaway 2013-03-01  
zTreeAPI 写道
chinaway 写道
麻烦问一下,3.0例子里边的样式
.ztree li button.add {margin-left:2px; margin-right: -1px; background-position:-112px 0px; vertical-align:top; *vertical-align:middle}

到3.5下面不能用了,我调整了位置为-148还是不行


非常抱歉,检查了一下,在 升级 v3.2 的log 中忽略了这部分内容,只是写在了当时的发布新闻内。
http://ztreeapi.iteye.com/blog/1527266

注意:需要升级 css 的


感谢,搞定了。
24 楼 zTreeAPI 2013-03-01  
chinaway 写道
麻烦问一下,3.0例子里边的样式
.ztree li button.add {margin-left:2px; margin-right: -1px; background-position:-112px 0px; vertical-align:top; *vertical-align:middle}

到3.5下面不能用了,我调整了位置为-148还是不行


非常抱歉,检查了一下,在 升级 v3.2 的log 中忽略了这部分内容,只是写在了当时的发布新闻内。
http://ztreeapi.iteye.com/blog/1527266

注意:需要升级 css 的
23 楼 chinaway 2013-02-28  
麻烦问一下,3.0例子里边的样式
.ztree li button.add {margin-left:2px; margin-right: -1px; background-position:-112px 0px; vertical-align:top; *vertical-align:middle}

到3.5下面不能用了,我调整了位置为-148还是不行
22 楼 hskww 2013-02-26  
zTreeAPI 写道
hskww 写道
...目前的做法就是勾选用户时,找到对应组节点,进行一些逻辑判断来更改此节点的属性,使用updateNode方法(checkNode 方法也一样)来进行树状态的关联。但有一种情况:A有u1,u2用户,当把u1的用户选中,u2不选中,在JS中使用updateNode或checkNode,发现它把A中的子组都选中了,希望A中的子组保持原样~~

父子关联关系可以自己控制呀,利用 setting.check.chkboxType

谢谢,问题已解决
21 楼 zTreeAPI 2013-02-25  
hskww 写道
...目前的做法就是勾选用户时,找到对应组节点,进行一些逻辑判断来更改此节点的属性,使用updateNode方法(checkNode 方法也一样)来进行树状态的关联。但有一种情况:A有u1,u2用户,当把u1的用户选中,u2不选中,在JS中使用updateNode或checkNode,发现它把A中的子组都选中了,希望A中的子组保持原样~~

父子关联关系可以自己控制呀,利用 setting.check.chkboxType
20 楼 hskww 2013-02-25  
zTreeAPI 写道
hskww 写道
hskww 写道
在使用Ztree中,有一个问题没找到解决方案,一组下面有子组和用户,用户不能展现在树中,默认下组的勾选与半勾选状态只与树中的节点关联,实际项目中要把组下的用户也当作组的子组来关联。
之前想到过两个方法:
1. 把用户加进树的结构,只不过把它隐藏,可是用JS把用户的checked属性变化,触发不了父级节点的联动
2. 在每次的checkbox的click事件中,加入自己的判断,由于用户不是树的结构,发现越改越乱

有解决方法吗?

我的理解如下:
树上只能显示组的信息; 实际应用中 组内还会有 用户信息,勾选 用户时要触发 树上 组的 checkbox 联动

如果是这样实现起来应该不难,建议如下:
1. 用户的信息中肯定会有所属的组的信息
2. 勾选用户时,根据对应组的信息可以利用 zTreeObj.getNodeByParam 或 getNodesByFilter 之类的方法获取到对应的 组的 节点数据
3. checkNode 方法可以进行勾选,默认情况下 zTree 会自动进行父子关联的

目前的做法就是勾选用户时,找到对应组节点,进行一些逻辑判断来更改此节点的属性,使用updateNode方法(checkNode 方法也一样)来进行树状态的关联。但有一种情况:A有u1,u2用户,当把u1的用户选中,u2不选中,在JS中使用updateNode或checkNode,发现它把A中的子组都选中了,希望A中的子组保持原样~~
19 楼 zTreeAPI 2013-02-23  
hskww 写道
hskww 写道
在使用Ztree中,有一个问题没找到解决方案,一组下面有子组和用户,用户不能展现在树中,默认下组的勾选与半勾选状态只与树中的节点关联,实际项目中要把组下的用户也当作组的子组来关联。
之前想到过两个方法:
1. 把用户加进树的结构,只不过把它隐藏,可是用JS把用户的checked属性变化,触发不了父级节点的联动
2. 在每次的checkbox的click事件中,加入自己的判断,由于用户不是树的结构,发现越改越乱

有解决方法吗?

我的理解如下:
树上只能显示组的信息; 实际应用中 组内还会有 用户信息,勾选 用户时要触发 树上 组的 checkbox 联动

如果是这样实现起来应该不难,建议如下:
1. 用户的信息中肯定会有所属的组的信息
2. 勾选用户时,根据对应组的信息可以利用 zTreeObj.getNodeByParam 或 getNodesByFilter 之类的方法获取到对应的 组的 节点数据
3. checkNode 方法可以进行勾选,默认情况下 zTree 会自动进行父子关联的
18 楼 hskww 2013-02-22  
hskww 写道
在使用Ztree中,有一个问题没找到解决方案,一组下面有子组和用户,用户不能展现在树中,默认下组的勾选与半勾选状态只与树中的节点关联,实际项目中要把组下的用户也当作组的子组来关联。
之前想到过两个方法:
1. 把用户加进树的结构,只不过把它隐藏,可是用JS把用户的checked属性变化,触发不了父级节点的联动
2. 在每次的checkbox的click事件中,加入自己的判断,由于用户不是树的结构,发现越改越乱

有解决方法吗?
17 楼 hskww 2013-02-22  
在使用Ztree中,有一个问题没找到解决方案,一组下面有子组和用户,用户不能展现在树中,默认下组的勾选与半勾选状态只与树中的节点关联,实际项目中要把组下的用户也当作组的子组来关联。
之前想到过两个方法:
1. 把用户加进树的结构,只不过把它隐藏,可是用JS把用户的checked属性变化,触发不了父级节点的联动
2. 在每次的checkbox的click事件中,加入自己的判断,由于用户不是树的结构,发现越改越乱
16 楼 zTreeAPI 2013-02-21  
775901421 写道
hello,可以问一下
刷新之后,如何保持树之前的状态呢

要自己cookie吗?

这种只好你自己cookie 了。。建议能用 webStorage 就用 webStorage;
如果用 cookie 建议不要保存全部数据,只保存关键节点的id 即可
15 楼 775901421 2013-02-21  
hello,可以问一下
刷新之后,如何保持树之前的状态呢

要自己cookie吗?
14 楼 tigerl 2013-02-20  
zTreeAPI 写道
tigerl 写道
你好,使用jquery1.9.1 的时候,左键点击Tree里的节点的时候报错,虽然不影响显示,但是在chrome控制台显示报错了,楼主可以测试下,我看到demo里引用的依然是jquery1.4,换成1.9.1

报错如下:
Uncaught TypeError: Cannot read property 'nodeName' of undefined jquery.ztree.core-3.5.js:614

hello,我已经发布到 github 上:http://plugins.jquery.com/zTree.v3/ 直接获取最新代码即可

感谢您在百忙之中修正问题!我也忙了一天,刚登陆博客!
13 楼 zTreeAPI 2013-02-20  
tigerl 写道
你好,使用jquery1.9.1 的时候,左键点击Tree里的节点的时候报错,虽然不影响显示,但是在chrome控制台显示报错了,楼主可以测试下,我看到demo里引用的依然是jquery1.4,换成1.9.1

报错如下:
Uncaught TypeError: Cannot read property 'nodeName' of undefined jquery.ztree.core-3.5.js:614

hello,我已经发布到 github 上:http://plugins.jquery.com/zTree.v3/ 直接获取最新代码即可
12 楼 zTreeAPI 2013-02-20  
yaodian 写道
setting里面的async里面的contentType 设置为 "application/json",无法生效,在3.5.01这个版本是可以的,但在3.5.02就不行了……

。。。麻烦你多做一下测试,我现在手头比较忙, 因为目前没有针对 async 部分做过任何修改呀
11 楼 zTreeAPI 2013-02-20  
p2bl 写道
感谢作者!

建议为 getNextNode 和 getPreNode 增加参数,可以设定是否必须在同一层

这个貌似就是在同一层内搜索的,不用限制的。
10 楼 p2bl 2013-02-20  
感谢作者!

建议为 getNextNode 和 getPreNode 增加参数,可以设定是否必须在同一层
9 楼 yaodian 2013-02-20  
setting里面的async里面的contentType 设置为 "application/json",无法生效,在3.5.01这个版本是可以的,但在3.5.02就不行了……
8 楼 zTreeAPI 2013-02-20  
tigerl 写道
你好,使用jquery1.9.1 的时候,左键点击Tree里的节点的时候报错,虽然不影响显示,但是在chrome控制台显示报错了,楼主可以测试下,我看到demo里引用的依然是jquery1.4,换成1.9.1

报错如下:
Uncaught TypeError: Cannot read property 'nodeName' of undefined jquery.ztree.core-3.5.js:614

非常感谢, 查看了一下 jquery 的代码,因为 srcElement 不规范,不符合 W3C 标准,所以在 jquery 1.9 中彻底删除了这个属性
将 代码中 var n = e.srcElement.nodeName.toLowerCase();
替换为 var n = e.originalEvent.srcElement.nodeName.toLowerCase();
就可以正常工作了, 我会抽空把这个修正先更新到 github 上.
7 楼 tigerl 2013-02-20  
你好,使用jquery1.9.1 的时候,左键点击Tree里的节点的时候报错,虽然不影响显示,但是在chrome控制台显示报错了,楼主可以测试下,我看到demo里引用的依然是jquery1.4,换成1.9.1

报错如下:
Uncaught TypeError: Cannot read property 'nodeName' of undefined jquery.ztree.core-3.5.js:614

相关推荐

Global site tag (gtag.js) - Google Analytics