使用ztree每次初始化,数据都会增加一倍,求解决方法
ztree吧
全部回复
仅看楼主
level 1
wangaibo168 楼主
说明一下,使用环境
首先有一个主页面假设为desktop.html,然后主页面弹出一个内嵌iframe(窗口),打开一个新的页面假设为window.html,在window.html中点击一个按钮,让desktop.html弹出一个悬浮层,悬浮层用于呈现jquery zTree。jquery zTree数据是从window.html中传送过去的。
现在的问题是,每次弹出悬浮层,ztree数据都会成倍增加。
悬浮层在关闭后,会被立即移除页面。
请看下图
第一次执行:
第二次执行:
请问这是什么原因造成的。
注: window.html中的数据使用的是全局变量。
还有一个问题,列表呈现正常,但是入口,通过方法treeObj.checkNode(null,node);
设置为选中状态,不会立即呈现选中(其实内部已经选中了),只有将鼠标移到选择框上,选中效果才会显示出来。

2012年08月03日 08点08分 1
level 11
1、zTree 内部的数据全部都是嵌套的json 数据,如果你每次使用getNodes 获取节点后,又使用 transformToArray 处理后,直接拿来初始化zTree 肯定会出现重复数据的,因为在Array中每个父节点的子节点都还存在于 children 属性内的。
2、checkNode 的参数如下:
Function(treeNode, checked, checkTypeFlag, callbackFlag) 请看看API
另外如果只修改了node.checked 属性,那么就会造成这种情况,要用 updateNode 更新,建议还是直接使用checkNode 方法进行处理。
2012年08月05日 14点08分 2
level 10
这个问题我也遇到过,哪些参数我看的不是很明白,我是这么处理,定义一个数组
当你点击一个节点的时候,把这个节点的ID放入数组中;然后进行比较,如果不相等返回false
代表你数组中没有这个ID,那第一次展开没问题
第二次在点击这个节点,这时候有这个ID返回true
你在那个添加节点的时候就可以判断了等于false就进来,true就不进来
就不会重复加载那个数据了
2012年08月08日 05点08分 3
1