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);
                    }
                }
            }
  • 相关阅读:
    LALR(1)语法分析生成器--xbytes
    <<摩托车修理技术与禅>>读书笔记
    xscript脚本
    CentOS安装Erlang
    TCP中close和shutdown之间的区别
    Erlang高阶函数
    深度学习小记
    mac平台打造犀利的Android Studio开发环境
    MAC中如何配置两套android-sdk环境
    Ubuntu虚拟机编译Android6.0总结
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6586484.html
Copyright © 2011-2022 走看看