7

私のjstreeには、すべての親ノードであるルートノードがあります。私はdndプラグインを使用しました。ツリー内のどこでもドラッグ アンド ドロップを許可したいのですが、ルート内のみ、つまりルートの前後ではなく許可したいと考えています。

- [Root]
   - Node 1
      - Node 1.1
      - Node 1.2
   + Node 2
   - Node 3
      + Node 3.1

フォーラムで確認したところ、drag_checkイベントは外部ノードのみを対象としており、ツリー内のノードを対象としていないことがわかりました。同じツリー ノードを検証するには、crrm -> check_moveイベントを使用する必要があります。それが私が助けを必要としているところです。の前後にノードがドロップされた場合に false を返したい[Root]

開始するフィドルは次のとおりです- http://jsfiddle.net/juyMR/23/

4

4 に答える 4

7

現在のバージョンの jstree (3.0.1) では、より簡単な解決策があります。使用する必要があるものはすべて

"types" : {     
       "#" : {
            "max_children" : 1
        }
    },

type プラグインを使用している場合は、2 つの定義済みの型があります。1 つは、上で使用した「#」です。これは、ツリーの「実際の」ルート要素、つまり内部で使用される要素に自動的に使用されます。したがって、追加の構成を行わずに独自のルートを最初のノードとして追加すると、すべてが正常に機能します。

于 2014-06-16T09:35:34.137 に答える
3

あなたは非常に近いです。trueを返すにはelseステートメントが必要です

http://jsfiddle.net/blowsie/juyMR/59/

 "crrm" : {
        "move" : {
            "check_move" : function (data) {
               // alert(data.r.attr("id"));
                if(data.r.attr("id") == "999") {
                    return false;
                }
                else {
                    return true;
                }
            }
        }
    },
于 2013-02-14T16:26:00.523 に答える
2

これは、追加機能なしですぐに処理できます。

$("#tree").jstree({
    "types" : {     
        "valid_children" : [ "root" ], //<== THIS IS THE IMPORTANT ONE !
                    "types" : {
                              "default" : {
                                    "valid_children" : "none"
                              },
                              "root" : {
                                    "valid_children" : "default"
                              }
                              }
              }
});

各ノード タイプ内で「valid_children」を指定できますが、1 レベル上でも指定できます (上記のコードで「THIS IS THE IMPORTANT ONE」と表示されている箇所を確認してください。

これにより、ノード タイプ ROOT が子を持つことがグローバルに許可されます。つまり、ルートから何も移動できず、ルート ツリー内のどこにでも移動できます。

于 2014-03-20T11:38:58.520 に答える
1

data.o (ソース ノード) と data.np (ノードの親) を見て、crrm check_move でそれらの ID を調べます。フィドルの例を見ると、data.np.attr("id") が "jsTreeDiv" に等しいことを許可しないでください。

于 2012-10-26T13:19:49.607 に答える