2016-04-11 35 views
0

我必須在jstree上工作,以便節省檢查節點的次數,但也會在加載時打開已檢查節點及其父母。這是代碼我有工作:存儲在外部陣列,其被處理以找到哪些是最好的上如何打開已檢查的節點jstree

initializeGeoLevelTree: function() { 

     var GeoLevelTree = $('#geoLevelTree'); 

     GeoLevelTree.jstree({ 
      "core": { 
       "multiple": false, 
       "themes": { 
        "responsive": false 
       }, 
       "check_callback": true, 
       "data": 
        CreateAdministrator.TreeGeoLevelArray 
      }, 
      "types": { 
       "default": { 
        "icon": "fa fa-folder icon-warning icon-lg" 
       }, 
       "file": { 
        "icon": "fa fa-file icon-warning icon-lg" 
       }, 
       "disabled": { 
        "check_node": false, 
        "uncheck_node": false 
       } 
      }, 
      "state": { "key": "createAdministrator" }, 
      "checkbox": { 
       "three_state": false, 
       "whole_node": false, 
       "tie_selection": false 
      }, 
      "plugins": ["checkbox", "wholerow", "types", "themes", "state"] 
     }); 

     GeoLevelTree.bind("loaded.jstree", function (e, data) { 

      GeoLevelTree.bind("select_node.jstree", function (e, data) { 
       $("#lblName").text(data.node.original.Name); 
       $("#lblType").text(data.node.original.GeoLevelType); 
       if (data.node.original.IdGeoLevelType == 4) { 
        $("#officeDetail").show(); 
        $("#lblAddress").text(""); 
        CreateAdministrator.getOfficelDetail(data.node.id); 
       } else { 
        $("#officeDetail").hide(); 
       } 
      }); 

      CreateAdministrator.SelectGeoLevelAdministratorSavedNode(); 
     }); 
     CreateAdministrator.hideLoadingPage(); 
    }, 


    SelectGeoLevelAdministratorSavedNode: function() { 
     for (var i = 0, l = CreateAdministrator.GeoLevelAdministratorSavedArray.length; i < l; i++) { 
      var option = CreateAdministrator.GeoLevelAdministratorSavedArray[i]; 
      $.jstree.reference("#geoLevelTree").check_node(option.IdGeoLevel); 
      jQuery.jstree._reference("#geoLevelTree")._open_to(option.IdGeoLevel); 
     } 
    }, 

被檢查的節點ADRE。有沒有辦法將這些節點設置爲打開狀態?使用open_node或_open_to方法似乎不起作用。在此先感謝

+0

您的代碼有check_node jstree.reference,但隨後jstree._reference您的公開聲明。這只是一個語法錯誤? – Adam

回答

0

_open_to似乎是伎倆。這裏是一個演示:
http://jsfiddle.net/DGAF4/1267/

也許問題是你傳遞給這兩個函數的ID的格式 - 注意ID是一個字符串,沒有#前綴。

最好的問候, 伊萬