0

我有一个简单的两级 jstree,它允许在父节点之间拖放叶节点。当父节点仅包含一个叶子时,当我将叶子拖出时,父节点“变成”叶子节点。我想阻止这种情况,但我找不到任何文档告诉我如何做到这一点。

我已经包含了正在发生的事情的图片表示。请注意,在图 2 中,父节点“Proctor”在外观上认为它是一个叶节点。我仍然可以将项目拖入其中,它再次成为非叶节点。如果父节点无论是否为空都保持组图标外观,则此界面更有意义。另请注意,当树最初打开时,空父节点会出现组图标(这是一件好事)。

这是最初出现的树:

在此处输入图像描述

这是我将 Paul Postler 从 Proctor 拖到 Contributor 后的树:

在此处输入图像描述

4

1 回答 1

2

我想出了一种方法来做到这一点,但它不是特别干净。任何其他答案将不胜感激。这是我添加到绑定 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 回答