Ztree異步加載自動展開節點


在Ztree的官網Demo中,有自動展開的例子,是通過設置節點屬性open:true來實現自動展開的,但是在異步加載中,這個屬性設置為true也不會自動展開,因為open:true是指在有子節點的情況下展開,在異步加載之前,當前節點是沒有子節點的,所以無法打開。
異步加載自動展開解決方法如下:

1.設置ztree的加載完成的回調函數:

setting = {  
    ......              
    callback: {
        ......
        onAsyncSuccess: zTreeOnAsyncSuccess  
    }  
};

onAsyncSuccess是指加載完成后要調用的方法,其他節點的設置請參考ztree的官網Demo.

2.編寫方法zTreeOnAsyncSuccess

var firstAsyncSuccessFlag = 0;
function zTreeOnAsyncSuccess(event, treeId, msg) {  
if (firstAsyncSuccessFlag == 0) {  
          try {  
                 //調用默認展開第一個結點  
                 var selectedNode = zTree.getSelectedNodes();  
                 var nodes = zTree.getNodes();  
                 zTree.expandNode(nodes[0], true);  
              
                 var childNodes = zTree.transformToArray(nodes[0]);  
                 zTree.expandNode(childNodes[1], true);  
                 zTree.selectNode(childNodes[1]);  
                 var childNodes1 = zTree.transformToArray(childNodes[1]);  
                 zTree.checkNode(childNodes1[1], true, true);  
                 firstAsyncSuccessFlag = 1;  
           } catch (err) {  
              
           }  
              
     }  
}

此方法可以自動加載第一級節點,try{} catch()是為了捕獲節點不存在時的異常,這樣可以使其不跑出js錯誤信息。
firstAsyncSuccessFlag變量的作用是使tree只在頁面初始化后自動展開一次,因為手動點擊加號展開子節點的時候也會調用此方法,通過此變量來標識是否自動加載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM