• 异步记载树默认展开


    异步记载树默认展开:
            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);
                    }
                }
            }
  • 相关阅读:
    Delphi源程序格式书写规范
    ORACLE常用傻瓜问题1000问
    世界上最健康的作息时间表
    poj1657
    poj1604
    poj1654
    poj1635
    poj1655
    成为一个不折不扣的时间管理专家[推荐]
    男人的十三怕
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6586484.html
Copyright © 2020-2023  润新知