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

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

阅读更多


    近期由于工作繁忙,所以一直没有发布 v3.5.13 的正式版,只是在 github 上不断更新每次修改后的 beta 版。 不过考虑到 2014年开始 google code 将不在支持创建新文件的下载功能,希望大家也都逐渐习惯使用 github 吧。

    GitHub:https://github.com/zTree/zTree_v3    

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

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

    下面是 v3.5.13 的修改记录:

   * 【增加】beforeRename & onRename 增加 isCancel 参数,可以监控用户 ESC 取消编辑的事件

   * 【修改】初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug
   * 【修改】多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。
   * 【修改】多棵树拖拽时,会触发 addHoverDom 的bug。
   * 【修改】多棵树拖拽时,由于 beforeDrog 或 prev / inner / next 返回 false 后未触发原始节点的 addHoverDom 的bug
   * 【修改】异步加载时,对于未加载子节点的父节点使用 expandNode 方法时, sonSign 设置为 true后,导致异步加载的节点无法正常显示的bug
   * 【修改】一次性加载全部数据,如果父节点 A 未展开,但下一级的父节点 A1 设置了 open=true 的时候,使用 expandAll 方法导致 A1 的下一级父节点出现重复的 bug
   * 【修改】增加对 iframe 的支持,可以只在主页面加载 zTree 的 js,在 iframe 内创建树 [https://github.com/zTree/zTree_v3/issues/7 Issue Info]
   * 【修改】引入 exhide 扩展包 导致页面上同时加载多棵树时,根节点 的 连接线图标出现异常 的 bug [http://tieba.baidu.com/p/2277416574]
   * 【修改】excheck & exedit 扩展包中事件代理获取节点 tId 的方法,保证适当修改 DOM 结构也能得到 tId

 

分享到:
评论
42 楼 zTreeAPI 2013-12-29  
zuxianghuang 写道
就是,我通过异步加载一层层加载,到最后一层时
我掉用
expandNode(productLine, true, false, false);展开,
selectNode(treeNode,false);选中。

然后设置滚动条的scrollTop(),但是这时树还有加载完成,设置的scrollTop()没起作用

selectNode 应该会自动展开其父节点的。不用再去设置 scrollTop 以及使用 expandNode
41 楼 zuxianghuang 2013-12-27  
就是,我通过异步加载一层层加载,到最后一层时
我掉用
expandNode(productLine, true, false, false);展开,
selectNode(treeNode,false);选中。

然后设置滚动条的scrollTop(),但是这时树还有加载完成,设置的scrollTop()没起作用
40 楼 zuxianghuang 2013-12-26  
怎么把滚动条设置到选中的节点上啊.
我是用异步加载的,然后下拉表里选中一个,去匹配树里的节点,匹配到了就用selectNode()方法选中。然后滚动条跳到选中的那里去。
节点太多,太长,设置scrollTop,有的可以,有的不行
39 楼 zTreeAPI 2013-11-03  
love521bean 写道
love521bean 写道
树上的节点展开非常耗性能吗? 展开的很慢,无论是expandAll还是 open:true都不快,卡顿好几秒。有什么好办法吗??

又测试了一下,发现不是展开不快,还是因为我用getSelectedNodes遍历去check卡主时间了。如果这个代码注释掉,速度还是可以接受的。

你的节点很多吗?? 一般来说 expandAll 应该还可以,但是节点很多的时候肯定会影响性能。 另外 checkNode 方法使用时一定要注意,尤其是有父子关联勾选的默认操作时。。。这里面在使用时要特别注意。。。
38 楼 love521bean 2013-10-28  
love521bean 写道
树上的节点展开非常耗性能吗? 展开的很慢,无论是expandAll还是 open:true都不快,卡顿好几秒。有什么好办法吗??

又测试了一下,发现不是展开不快,还是因为我用getSelectedNodes遍历去check卡主时间了。如果这个代码注释掉,速度还是可以接受的。
37 楼 love521bean 2013-10-28  
树上的节点展开非常耗性能吗? 展开的很慢,无论是expandAll还是 open:true都不快,卡顿好几秒。有什么好办法吗??
36 楼 zTreeAPI 2013-10-27  
love521bean 写道
终于理解你那句话的含义了。
“利用 getCheckedNodes 以及 checkNode 方法处理一下就Ok了,也不会太麻烦的”
瞎写了半天。。
后来改了一下:
function refreshCheck() {
var zTree = $.fn.zTree.getZTreeObj("functionTree");
var nodes = zTree.getCheckedNodes(true);
    for (var i=0, l=nodes.length; i<l; i++) {
var childrens = nodes[i].children;
if(childrens != null && childrens != ''){
continue;
}
zTree.checkNode(nodes[i], true,true);
}
}

一个方法就够了。一开始没有理解checkNode的功能。原来这个方法是能够自动关联的。

35 楼 love521bean 2013-10-26  
终于理解你那句话的含义了。
“利用 getCheckedNodes 以及 checkNode 方法处理一下就Ok了,也不会太麻烦的”
瞎写了半天。。
后来改了一下:
function refreshCheck() {
var zTree = $.fn.zTree.getZTreeObj("functionTree");
var nodes = zTree.getCheckedNodes(true);
    for (var i=0, l=nodes.length; i<l; i++) {
var childrens = nodes[i].children;
if(childrens != null && childrens != ''){
continue;
}
zTree.checkNode(nodes[i], true,true);
}
}

一个方法就够了。一开始没有理解checkNode的功能。原来这个方法是能够自动关联的。
34 楼 love521bean 2013-10-25  
写了两个小方法搞定这个事情了:
function refreshCheck() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = zTree.getNodes();
    for (var i=0, l=nodes.length; i<l; i++) {
var checkedFlag = checkNodeStatus(nodes[i]);
if(checkedFlag){
nodes[i].checked = true;
}
}

}

function checkNodeStatus(node){
var childrens = node.children;
if(childrens == null){
return node.checked;
}else{
var checkedFlag = true;
    for (var i=0, l=childrens.length; i<l; i++) {
var childrenCheckFlag = checkNodeStatus(childrens[i]);
if(!childrenCheckFlag){
checkedFlag = false;
}
}
if(checkedFlag){
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.checkNode(node, true,true);
}
return node.checked;
}
}

还有个问题想请教一下,我加载之后想默认打开,用expandAll结果发现很慢。会卡一下,不知道是不是数据里直接放open:true会快一些。是不是expendAll本身就会很慢?
33 楼 zTreeAPI 2013-10-25  
love521bean 写道
zTreeAPI 写道
love521bean 写道
zuxianghuang 写道
zTreeAPI 写道
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧

嗯,你说的对。
就是用户看到那个灰色的复选框,子节点是又是选中的,他以为是出问题。
不过我把父节点都设为true,就好了。
你说,你提供一个getParentNodesz()得到所有父节点的方法是否能比我一个个循环调用getParentNode()要快呢?


我也遇到这个问题,就是用数据加载的时候,我只加载子节点的数据,当一个父下所有的子节点都是选中状态时,父节点只是变成灰色,而没有处于选中状态。其实这个时候处于选中状态就比较清晰了,说明下面的子都是被选中的。但是如果是点击的话,就没有这个问题,点击所有的子,父就自动选中了。

是这样的,因为 为了保证 原始数据的准确性,避免干扰,所以初始化时是不会进行数据联动勾选的。 请务必注意


啊。。。啊。。。。之前用easyUi的tree时,能达到这个效果,所以后台就只传了子节点了。这样父节点都不需要再传送了,节省数据量。请问怎么改能够让其有这种效果。还是非常希望能够自动进行数据联动勾选。这样后台传送的数据量就会小很多。谢谢啦。

利用 getCheckedNodes 以及 checkNode 方法处理一下就Ok了,也不会太麻烦的
32 楼 love521bean 2013-10-25  
zTreeAPI 写道
love521bean 写道
zuxianghuang 写道
zTreeAPI 写道
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧

嗯,你说的对。
就是用户看到那个灰色的复选框,子节点是又是选中的,他以为是出问题。
不过我把父节点都设为true,就好了。
你说,你提供一个getParentNodesz()得到所有父节点的方法是否能比我一个个循环调用getParentNode()要快呢?


我也遇到这个问题,就是用数据加载的时候,我只加载子节点的数据,当一个父下所有的子节点都是选中状态时,父节点只是变成灰色,而没有处于选中状态。其实这个时候处于选中状态就比较清晰了,说明下面的子都是被选中的。但是如果是点击的话,就没有这个问题,点击所有的子,父就自动选中了。

是这样的,因为 为了保证 原始数据的准确性,避免干扰,所以初始化时是不会进行数据联动勾选的。 请务必注意


啊。。。啊。。。。之前用easyUi的tree时,能达到这个效果,所以后台就只传了子节点了。这样父节点都不需要再传送了,节省数据量。请问怎么改能够让其有这种效果。还是非常希望能够自动进行数据联动勾选。这样后台传送的数据量就会小很多。谢谢啦。
31 楼 zTreeAPI 2013-10-25  
love521bean 写道
zuxianghuang 写道
zTreeAPI 写道
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧

嗯,你说的对。
就是用户看到那个灰色的复选框,子节点是又是选中的,他以为是出问题。
不过我把父节点都设为true,就好了。
你说,你提供一个getParentNodesz()得到所有父节点的方法是否能比我一个个循环调用getParentNode()要快呢?


我也遇到这个问题,就是用数据加载的时候,我只加载子节点的数据,当一个父下所有的子节点都是选中状态时,父节点只是变成灰色,而没有处于选中状态。其实这个时候处于选中状态就比较清晰了,说明下面的子都是被选中的。但是如果是点击的话,就没有这个问题,点击所有的子,父就自动选中了。

是这样的,因为 为了保证 原始数据的准确性,避免干扰,所以初始化时是不会进行数据联动勾选的。 请务必注意
30 楼 love521bean 2013-10-24  
zuxianghuang 写道
zTreeAPI 写道
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧

嗯,你说的对。
就是用户看到那个灰色的复选框,子节点是又是选中的,他以为是出问题。
不过我把父节点都设为true,就好了。
你说,你提供一个getParentNodesz()得到所有父节点的方法是否能比我一个个循环调用getParentNode()要快呢?


我也遇到这个问题,就是用数据加载的时候,我只加载子节点的数据,当一个父下所有的子节点都是选中状态时,父节点只是变成灰色,而没有处于选中状态。其实这个时候处于选中状态就比较清晰了,说明下面的子都是被选中的。但是如果是点击的话,就没有这个问题,点击所有的子,父就自动选中了。
29 楼 zTreeAPI 2013-10-14  
lybykw 写道
普通树完成后,有没有回调函数。谢谢。
一般的树渲染完成后,整个都生成了,想执行回调函数,完成一些特殊功能。有没有呀。

没有使用异步加载的普通树 init 后就完成了,不需要回调。 如果是 异步加载的话,需要捕获 onAsyncSuccess 回调
28 楼 lybykw 2013-10-10  
普通树完成后,有没有回调函数。谢谢。
一般的树渲染完成后,整个都生成了,想执行回调函数,完成一些特殊功能。有没有呀。
27 楼 zTreeAPI 2013-09-15  
mmeroad 写道
你好,我在和easyui1.3.3版本一起使用时,身拖拽树结点时报错,请问有什么解决方法吗?
IE10调试报错:
SCRIPT5009: “body”未定义
jquery.ztree.all-3.5.js, 行3062 字符6

今天整理遗留问题时,发现你这个问题已经修正,貌似一直没有告诉你。。不好意思
26 楼 zTreeAPI 2013-09-06  
zuxianghuang 写道
zTreeAPI 写道
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧

嗯,你说的对。
就是用户看到那个灰色的复选框,子节点是又是选中的,他以为是出问题。
不过我把父节点都设为true,就好了。
你说,你提供一个getParentNodesz()得到所有父节点的方法是否能比我一个个循环调用getParentNode()要快呢?

一样的,无非是你能省事儿一些
25 楼 zuxianghuang 2013-09-02  
zTreeAPI 写道
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧

嗯,你说的对。
就是用户看到那个灰色的复选框,子节点是又是选中的,他以为是出问题。
不过我把父节点都设为true,就好了。
你说,你提供一个getParentNodesz()得到所有父节点的方法是否能比我一个个循环调用getParentNode()要快呢?
24 楼 zTreeAPI 2013-08-31  
zuxianghuang 写道
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

1. 父节点 checkbox 变灰色,是表明该节点的子节点有被选中的情况;这样主要用于即使父节点被折叠时,用户也能清晰快速找到勾选的子节点。 看看 API中 setting.check.chkStyle 这个的说明
2. chkboxType 这个属性如果你没有修改,默认就是父子关联的呀。 请你对照 checkbox 的demo 再看看吧
23 楼 zuxianghuang 2013-08-31  
首先感谢作者,
现在我在用3.5版的。
有个问题,
就是子节点复选框设置了true,选中了,但是父节点不是选中的状态,是黑的,没有关联。
但是设的是子父级关联的啊。
现在要把它的所有的父级都设置为true,才能达到效果。
不知是否做成级联更好?

相关推荐

Global site tag (gtag.js) - Google Analytics