zoukankan      html  css  js  c++  java
  • 异步记载树默认展开

    异步记载树默认展开:
            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);
                    }
                }
            }
  • 相关阅读:
    dsu on tree
    bzoj3527 [Zjoi2014]力
    bzoj3527 [Zjoi2014]力
    114.遍历文件夹并批量修改文件名
    25.八皇后问题
    24.C语言最全排序方法小结(不断更新)
    112.备忘录设计模式
    110.文件搜索,系统大小获取,以及病毒行为
    109.vprintf vfprintf vscanf vfscanf
    108.sqllite3(C语言数据库库)详解
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6586484.html
Copyright © 2011-2022 走看看