2016-04-11 14 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は文字列であり、何の#接頭辞を持っていません注意してください。

敬具、 イワン