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);
                    }
                }
            }
  • 相关阅读:
    Python使用inspect查看代码参数
    Python的hasattr() getattr() setattr()
    Module-GitBook使用手册
    Module-Hadoop技术文档
    Module-Git使用手册
    Module-Faker使用手册
    Module-Docker使用手册
    Module-DB2技术文档
    Module-Dask并行任务调度
    Module-Apache使用说明
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6586484.html
Copyright © 2011-2022 走看看