异步记载树默认展开
异步记载树默认展开: 1、页面进来加载方法:expandAll(); 2、异步加载回调函数:onAsyncSuccess: zTreeOnAsyncSuccess 3、然后加入下面内容: var curStatus = "init", curAsyncCount = 0, asyncForAll = false,goAsync = false; function beforeAsync() { curAsyncCount++; } function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) { curAsyncCount--; if (curStatus == "expand") { expandNodes(treeNode.children); } else if (curStatus == "async") { asyncNodes(treeNode.children); } if (curAsyncCount <= 0) { if (curStatus != "init" && curStatus != "") { asyncForAll = true; } curStatus = ""; } } function expandAll() { if (!check()) { return; } var zTree = $.fn.zTree.getZTreeObj("fitTypeTree"); if (asyncForAll) { zTree.expandAll(true); } else { expandNodes(zTree.getNodes()); if (!goAsync) { curStatus = ""; } } } function check() { if (curAsyncCount > 0) { return false; } return true; } function expandNodes(nodes) { if (!nodes) return; curStatus = "expand"; var zTree = $.fn.zTree.getZTreeObj("fitTypeTree"); for (var i=0, l=nodes.length; i<l; i++) { zTree.expandNode(nodes[i], true, false, false); if (nodes[i].isParent && nodes[i].zAsync) { expandNodes(nodes[i].children); } else { goAsync = true; } } } function asyncNodes(nodes) { if (!nodes) return; curStatus = "async"; var zTree = $.fn.zTree.getZTreeObj("fitTypeTree"); for (var i=0, l=nodes.length; i<l; i++) { if (nodes[i].isParent && nodes[i].zAsync) { asyncNodes(nodes[i].children); } else { goAsync = true; zTree.reAsyncChildNodes(nodes[i], "refresh", true); } } }