0

親ノード間でリーフノードをドラッグアンドドロップできる単純な2レベルのjstreeがあります。親ノードにリーフが1つしかない場合、リーフをドラッグアウトすると、親ノードはリーフノードに「なります」。これを防ぎたいのですが、これを行う方法を説明しているドキュメントが見つかりません。

何が起こっているのかを絵で表現したものを含めました。写真2では、親ノード「Proctor」が外観の観点からリーフノードであると見なしていることに注意してください。アイテムをそこにドラッグすることはできますが、再び非リーフノードになります。親ノードが空であるかどうかに関係なく、グループアイコンの外観を維持している場合は、このインターフェイスの方がはるかに理にかなっています。ツリーが最初に開いているとき、空の親ノードがグループアイコンとともに表示されることにも注意してください(これは良いことです)。

最初に表示されるツリーは次のとおりです。

ここに画像の説明を入力してください

PaulPostlerをProctorからContributorにドラッグした後のツリーは次のとおりです。

ここに画像の説明を入力してください

4

1 に答える 1

2

私はそれを行う1つの方法を考え出しましたが、特にきれいではありません。他の回答は大歓迎です。バインドされた move_node.jstree コードに追加したものは次のとおりです。

var oldParent = document.getElementById(
    (oldIsUnassigned) ? "Unassigned" : "P" + oldRoleId);
var className = oldParent.className.replace("jstree-leaf", "");
if (className.indexOf("jstree-drop") < 0) className += " jstree-drop";
if (className.indexOf("jstree-open") < 0) className += " jstree-open";
oldParent.className = className;
于 2013-02-27T20:00:23.990 に答える