最近项目有需求,要用zTree加载大量数据 and 加上页面还有其他需求,记录一下
Ztree异步加载,首先父节点分页展示,子节点也分页展示。
一旦勾选父节点,异步查询子节点,并且展开父节点,子节点同时被勾选
在onCheck方法里,调用reAsyncChildNodes,然后想遍历勾选子节点,发现不可以,还没加载完,于是加上延时,延时里既勾选子节点又展开父节点
代码如下
function onCheck(event, treeId, treeNode) {
if (treeNode.page== 0){
treeNode.page = 1;
zTreeObj.reAsyncChildNodes(treeNode,"refresh", true);
debugger;
setTimeout(function(){
for(var i = 0; i <treeNode.children.length; i++){
zTreeObj.checkNode(treeNode.children[i],true, true);
}
zTreeObj.expandNode(treeNode,true, true, true);
}, 50);
}
};
不过发现个问题,zTreeObj.expandNode(treeNode, tree, tree, tree)方法的第五个参数,如下:
allbackFlag Boolean
callbackFlag = true 表示执行此方法时触发 beforeExpand / onExpand 或 beforeCollapse / onCollapse 事件回调函数
callbackFlag = false 表示执行此方法时不触发事件回调函数
省略此参数,等同于 false
省略该参数时,可以展开父节点,且isParent方法返回true,加上改参数时,不能展开父节点,且isParent方法返回false
未完待续……