>  기사  >  웹 프론트엔드  >  zTree는 모든 노드를 비동기적으로 로드합니다.

zTree는 모든 노드를 비동기적으로 로드합니다.

巴扎黑
巴扎黑원래의
2016-11-25 11:10:351845검색

참조된 헤더 파일 코드

cb197470341c8d91a26b68f86bd48c72/comComponent/ztree/ css/ zTreeStyle/zTreeStyle.css" />

bbc362e6559c2805048b5bbe92713f2e/comComponent/ztree/js/jquery -1.4 .4.min.js">2cacc6d41bbb37262a98f745aa00fbf0

bbc362e6559c2805048b5bbe92713f2e/comComponent/ ztree/ js/jquery.ztree.core.js">2cacc6d41bbb37262a98f745aa00fbf0

bbc362e6559c2805048b5bbe92713f2e /ztree/js/jquery.ztree.excheck.js">2cacc6d41bbb37262a98f745aa00fbf0

트리 캐리어 코드

<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":&#39;${sysRole.srId}&#39;}  
        },  
        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>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.