1

私はjsTreeを使用していますが、これまでのところ見栄えが良いです。

私は(g1、g2、g3 ...およびk1、k2、k3のようないくつかの他のノード)のような新しいノードごとにIDが増分されるノードのリストを持っています

を使用して、ドキュメントの読み込み時に特定のノードを開くことができます

              "core": { 
                "animation": 0,
                "open_parents": true,
                "initially_open": ['g1']
                },

しかし、「g」で始まるが「k」ではないすべてのノードを開きたいのですが、 $(id^=g) のようなものを使用できますか?

アップデート:

ノードは、次のようなWebサービスを介して動的に作成されます

 Dim oSB1 As StringBuilder = New StringBuilder
oSB1.Append(" <h5 >JSTree</h5> <div id='divtree' ><ul id='tree'> <li id='g1'><a       href='#' class='usr'>1st Node</a><ul> <li><a href='#'  rel='file'>1.1</a></li><li><a href='#'  class='usr'>1.2</a></li><li><a href='#'  class='file'>1.3</a></li></ul></li></ul><ul><li id='g2'><a href='#' class='usr'>2nd Node</a><ul> <li><a href='#'  rel='file'>2.1</a></li><li><a href='#' >2.2</a></li></ul></ul> <ul><li id='k2'><a href='#' class='usr'>3rd Node</a><ul> <li><a href='#'  rel='file'>3.1</a></li><li><a href='#' >3.2</a></li></ul></ul> <ul><li id='k2'><a href='#' class='usr'>4th Node</a><ul> <li><a href='#'  rel='file'>4.1</a></li><li><a href='#' >4.2</a></li></ul></ul></div>")
Return oSB1.ToString

Web サービスから返されたデータは jstree に割り当てられるため、「k」ではなく「g」で始まる ID を持つノードのみを開く必要があります。上記の例ではノードが 2 つしかありませんが、 100 以上のノード。

ツリーはそのように呼ばれます

  $("#G2").html(data.d);
$("#divtree").jstree(
                  {
                     "state": "open",
                      "animated": "slow",
                      "plugins": ["themes", "html_data", "ui", "crrm", "contextmenu"],

                        //working
                      "core": {
                          "animation": 0,
                          "open_parents": true,
                          "initially_open": ['g1']
                      },

                      "contextmenu": {
                          "items": function ($node) {
                              return {
                                  "Create": {
                                      "label": "Create a new Node",
                                      "action": function (obj) {
                                          $("#divtree").jstree("create_node", function () { alert("are you sure?") }, true);
                                          this.create(obj);
                                      }
                                  },
                                  "Rename": {
                                      "label": "Rename Node",
                                      "action": function (obj) {
                                          $("#divtree").jstree("rename_node", function () { alert("you are trying to rename") }, true);
                                          this.rename(obj);

                                      }
                                  },
                                  "Delete": {
                                      "label": "Delete Node",
                                      "action": function (obj) {
                                          $("#divtree").jstree("delete_node", function () { alert("Really!!?") }, true);
                                          this.remove(obj);


                                      }
                                  }
                              };
                          }
                      }

                  });

彼女は ID 'g1' を持つノードのみを開きますが、私は ID 'g' で始まるすべてのノードを開きたいのですが、操作可能にする方法はありますか?

4

2 に答える 2

0

json を生成するときは"state" => "open"、ロード時に開きたいノードだけに使用できます。したがって、ロジックは jsTree 自体ではなく、json を生成するコードにあります。

json_data プラグインのドキュメントで詳細を読む

JSON 形式でデータを提供する場合に従う必要がある基本的な構造は次のとおりです。

{
    "data" : "node_title",  // omit `attr` if not needed; the `attr` object gets passed to the jQuery `attr` function
    "attr" : { "id" : "node_identificator", "some-other-attribute" : "attribute_value" }, // `state` and `children` are only used for NON-leaf nodes
    "state" : "closed", // or "open", defaults to "closed"
    "children" : [ /* an array of child nodes objects */ ]
}
于 2013-02-19T21:48:34.247 に答える
0

jsTree は非常に優れていますが、そのドキュメントには少し物足りないところがあります。私もしばらく苦労しましたが、最終的にこれを 思いつきました-jsTreeノードを選択的に展開/縮小します

これは特定の質問に直接答えないかもしれませんが、役立つと思います。

于 2013-02-18T09:59:52.053 に答える