2013-02-27 55 views
0

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

我已经包含了正在发生的事情的图形表示。请注意,在图2中,父节点“Proctor”认为它是外观上的叶节点。我仍然可以将项目拖入其中,并再次成为非叶节点。如果父节点保持组图标外观,它对这个接口更有意义。还要注意,当树最初打开时,空的父节点会显示组图标(这是件好事)。

这里的树,因为它似乎开始:

enter image description here

和这里的树后,我拖保罗Postler从宝洁到贡献者:

enter image description here

回答

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;