Jquery plugins jsTree删除节点实际上并没有删除它

Jquery plugins jsTree删除节点实际上并没有删除它,jquery-plugins,jstree,Jquery Plugins,Jstree,希望你能帮我解决jsTree问题。。。直到最近才开始使用它,所以我仍然能找到我的脚 我在同一页上使用两个jRestes,左边的可用对象,右边包含对象,中间有几个按钮,让用户将对象从左边的树移到右边的树,反之亦然。我没有使用dnd插件,也不希望用户能够在树之间拖放。我的数据结构只有两个层次,父母和孩子/多个孩子 另一件需要提及的事情是,当我将一个节点从一棵树移动到另一棵树时,它将从该树中移除,并在另一棵树中创建 所以我遇到的问题是,我可以在左树中选择一个节点,或者是父节点,或者是它的子节点,我可以

希望你能帮我解决jsTree问题。。。直到最近才开始使用它,所以我仍然能找到我的脚

我在同一页上使用两个jRestes,左边的可用对象,右边包含对象,中间有几个按钮,让用户将对象从左边的树移到右边的树,反之亦然。我没有使用dnd插件,也不希望用户能够在树之间拖放。我的数据结构只有两个层次,父母和孩子/多个孩子

另一件需要提及的事情是,当我将一个节点从一棵树移动到另一棵树时,它将从该树中移除,并在另一棵树中创建

所以我遇到的问题是,我可以在左树中选择一个节点,或者是父节点,或者是它的子节点,我可以在点击按钮后将它移动到右树。如果我选择的节点是父节点,它将移动父节点和所有子节点。如果我选择的节点是唯一的子节点,它将同时移动父节点和子节点。对于这个例子,让我们继续使用这个场景。我通过以下方式做到这一点:

//Check to see if the parent exists in the right tree, if it doesn't create it
I've left this function call out for now but can post later if required
//Assuming the parent doesn't exist, create the parent in the right tree
$("#treeInc").jstree("create", null, false, { attr: { id: parent.id }, data: $(parent).children("a").text() }, false, true);
//Create the child in the right tree belonging to the parent node
$("#treeInc").jstree("create", $("#" + parent.id), "inside", { attr: { id: child.id }, data: $(child).children("a").text() }, false, true);

//Remove the parent and child from the left tree
$("#treeAvail").jstree("remove", $('#' + child.id));
$("#treeAvail").jstree("remove", $('#' + parent.id));
现在这一切都很好,但我的问题是,当我尝试将节点移回左边的树时,父节点似乎总是存在于数据中,甚至认为应该被删除。这意味着我实际上并没有调用代码来创建父对象,而是只调用子对象,它最终会在没有父对象的情况下独自徘徊

因此,我的逻辑是首先通过在属于正确树的节点中查找父id来检查父节点是否存在。到目前为止,我已经用了几种不同的方法来做这件事,每次都失败了

我调用了左树的“get_json”函数来循环遍历节点,但它存在于其中。 我在最初加载左树的数组中循环,但该数组包含初始加载的所有节点,并且似乎从未更改。 我曾尝试使用“delete_node”而不是remove,但这没有什么区别

那么我做错了什么?如果我从jsTree中删除一个节点,在数据方面,我如何检查该树以查看它是否消失了

请帮帮我,它快把我逼疯了

我的实际树数据来自web服务,但对于本例,下面的json数组就可以了

availDataCache = [
        { attr: { id: "A_R1" }
          , data: "Report 1"
          , state: "open"
          , children: [{ attr: { id: "A_PSA1" }, data: "Param Set A"}]
        }
        , { attr: { id: "A_R2" }
            , data: "Report 2"
            , state: "open"
            , children : [ 
                  { attr: { id: "A_PSA2" }, data: "Param Set A" }
                  ,{ attr: { id: "A_PSB1" }, data: "Param Set B" }
                   ]
          }
        ];

$("#treeAvail").jstree({
    "json_data": {
        "data": availDataCache
    },
    "core": {
        "animation": 0
    },
    "plugins": ["themes", "json_data", "ui", "core", "crrm"]
});

$("#treeInc").jstree({
    "json_data": {
        "data": incDataCache
    },
    "core": {
        "animation": 0
    },
    "plugins": ["themes", "json_data", "ui", "core", "crrm"]
});

在每次复制、移动、删除操作之后,尝试为两个jstree调用刷新函数

$("#leftjsTree").jstree("refresh" ,"#idOfLeftNode");
$("#rightjsTree").jstree("refresh" ,"#idOfRightNode");

您使用的是什么版本的jstree?有些版本与其他版本非常不同。对不起,应该说。。。版本1.0-rc3,直接从网站下载