【问题标题】:jstree: prevent parent node from becoming leaf nodejstree:防止父节点成为叶子节点
【发布时间】:2013-02-27 18:20:39
【问题描述】:

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

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

这是最初出现的树:

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

【问题讨论】:

    标签: jstree drag-and-drop


    【解决方案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;
    

    【讨论】: