当前位置:Gxlcms > JavaScript > zTree异步加载全部节点

zTree异步加载全部节点

时间:2021-07-01 10:21:17 帮助过:19人阅读

引用的头部文件代码

<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/component/ztree/css/zTreeStyle/zTreeStyle.css" />

<script type="text/javascript" src="<%=request.getContextPath()%>/component/ztree/js/jquery-1.4.4.min.js"></script>

<script type="text/javascript" src="<%=request.getContextPath()%>/component/ztree/js/jquery.ztree.core.js"></script>

<script type="text/javascript" src="<%=request.getContextPath()%>/component/ztree/js/jquery.ztree.excheck.js"></script>

树的载体代码

<div style="border:solid 1px #a7b5bc; float:left; width:100%; height:100%; overflow-y:auto;">  
    <ul id="tree" class="ztree"></ul>  
</div>

Javascript部分(本文重点)代码

<script type="text/javascript">  
    //初始化树  
    $(function() {  
        $zTree = $.fn.zTree.init($("#tree"), $setting);  
          
        //延迟展开根节点  
        setTimeout(function(){  
            var nodes = $zTree.getNodes();  
            if(nodes.length >0){  
                $zTree.expandNode($zTree.getNodes()[0], true, false, false);  
            }  
        },1000);  
    });  
      
    //定义ztree树所需变量  
    var $zTree;  
    var $zTreeFlag = true;  
    var $setting = {  
        async : {  
            enable : true,  
            url : "/baseplatform/auth/selectSysRoleUserTreeByPid.do",  
            autoParam : ["id"],  
            otherParam: {"srId":'${sysRole.srId}'}  
        },  
        callback : {  
            onAsyncSuccess : onAsyncSuccess  
        },  
        data : {  
            key : {name : "name"},  
            simpleData : {enable : true, idKey : "id", pIdKey : "pId", rootPId : -1}  
        },  
        check: {  
            enable: true  
        }  
    };  
      
    //每次加载节点触发的方法  
    function onAsyncSuccess(event, treeId, treeNode, msg) {  
        //递归展开子节点  
        if(treeNode != undefined){  
            expandNodes(treeNode.children, "tree");  
        }  
    }  
              
    //递归展开子节点  
    function expandNodes(nodes, treeId) {  
        if (!nodes) return;  
        var zTree = $.fn.zTree.getZTreeObj(treeId);  
        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, treeId);  
            }  
        }  
    }  
</script>

人气教程排行