使用jsTree動態加載節點


  因為項目的需要,需要做一個樹狀菜單,並且節點是動態加載的,也就是只要點擊父節點,就會加載該節點下的子節點

  大致的效果實現如下圖:

  

  

 

  以上的實現就是通過jsTree實現的,一個基於JQuery的樹狀菜單插件,支持html,json,xml三種數據源,支持自定義主題,應該說是一個很強大的工具,現在我就把相關的代碼,也是最常用的代碼貼出來供大家參考。

  jsTree官網地址:http://www.jstree.com/

    以下為代碼片段:

    按我自己的理解方式,我定義了兩種初始化方式,數據源都是采用的html,以下為詳細的使用過程。

    第一種:使用默認的html元素初始化jsTree(本地初始化,無需動態加載)

        1)定義div容器

          

 1 <div id="jsTree">
 2     <ul>
 3         <li>
 4             <a href="#">node1</a>
 5             <ul>
 6                 <li>
 7                     <a href="#">node1</a>
 8             </li>
 9         </ul>
10         </li>
11         <li>
12             <a href="#">node2</a>
13         </li>
14     </ul>
15 </div>                        

        2)初始化jsTree

$(document).ready(function(){
    $("#jsTree").jstree({
        "themes" : {
            "theme" : "apple",
         },
            "plugins" : [ "themes", "html_data", "ui"]
    });
});

     第二種:使用自定義或給定的html元素(作為父節點)初始化jsTree

        1)定義div容器

 

1 <div id="jsTree"><div>

 

          2)初始化jsTree

 1 $(document).ready(function(){
 2     var root = $("#root").html();
 3     $("#jsTree").jstree({
 4         "themes" : {
 5             "theme" : "apple",                   //定義主題風格,此處為蘋果系統風格
 6         },
 7         "html_data":{
 8             "data":"<li class="jstree-closed" id=""><a href="#">node1</a></li>",//自定義用於初始化的父節點,此處默認為關閉狀態,class屬性值“jstree-closed”指定
 9             "ajax":{                 //打開父節點時,將會觸發ajax請求,以用來加載該父節點下的子節點
10                 "url":"",                        //用於獲取子節點的鏈接地址
11                 "data":function(n){              //請求上述鏈接地址返回的html數據,結果格式為"<li><a href="#">node_1</a></li>",可以含有多個li元素(也就是所需要的多個字節點)
12                     return {
13                         "configId":n.attr("id")  //父節點id,用於獲取子節點
14                     };
15                 }
16             }
17         },
18         "plugins" : [ "themes", "html_data" ,"ui"] //定義jsTree中需要使用的插件
19         
20     });
21 });

 

以上為我個人的使用體驗,僅供參考


免責聲明!

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



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