Javascript 如何删除没有子节点的根节点的三角形图标(用于展开/折叠)?

Javascript 如何删除没有子节点的根节点的三角形图标(用于展开/折叠)?,javascript,jquery,jstree,Javascript,Jquery,Jstree,我在使用jstree的ui时遇到了一些困难,它会在单击节点时动态添加/删除节点。它将在第一次单击时添加子节点,在第二次单击同一节点时删除单击节点。我当前正在将jstree与所选的_节点事件绑定,如下所示: $(function () { $("#tree").jstree({ "json_data" : { "data" : [ { data : "/",

我在使用jstree的ui时遇到了一些困难,它会在单击节点时动态添加/删除节点。它将在第一次单击时添加子节点,在第二次单击同一节点时删除单击节点。我当前正在将jstree与所选的_节点事件绑定,如下所示:

$(function () {
    $("#tree").jstree({ 
        "json_data" : {
            "data" : [
                { 
                    data : "/", 
                    attr : { "id" : "root"},
                    state : "closed",
                },
            ]
        },
        "plugins" : [ "themes", "json_data", "crrm", "ui" ]
    }).bind("select_node.jstree", function(event, data) { 
        // . . . 
    }

最初是一个带有文件夹图标的节点,左侧有一个小三角形(用于展开),数据值位于文件夹图标的右侧。由于树最初没有节点,我不想要扩展功能,即左侧的小三角形。有人能帮忙吗?对于子节点,当我第二次单击(删除子节点的子节点)时,三角形消失。我无法理解随机显示三角形以进行展开/折叠的逻辑

您可以尝试将根节点状态设置为:

state: "leaf"

这样,节点就不会显示展开的三角形。

一个解决方法是对css隐藏图标:

#树i{
显示:无;
}

非常感谢@spiderman77。从现在起我会记住这一点。但是现在我已经在不知道你所说的方法的情况下编写了所有程序,如果你能告诉我在删除所有子节点后如何在节点前面有一个扩展三角形,那将非常有帮助。我也完全不知道jstree的内部逻辑(顺便说一句,当节点没有子节点时,不使用公开三角形似乎更符合逻辑)无论如何……您可以尝试强制使用“打开”样式(如果jstree在内部自动应用于没有子节点样式“leaf”的节点,则应能工作)