jstree:如何取消删除/恢复节点

时间:2015-09-21 10:04:54

标签: jquery ajax tree nested jstree

我在我的应用程序中使用了jsTree和contextmenu插件。

删除节点时,我有一个ajax请求,它对我的​​数据库执行操作。

我希望仅在ajax返回operation = true参数时才从视图中删除节点。

如何使用以下代码取消删除已删除的jstree节点:

function (data) {
    var inst = $.jstree.reference(data.reference),
        obj = inst.get_node(data.reference);
    if(inst.is_selected(obj)) {
        inst.delete_node(inst.get_selected());
    }
    else {
        inst.delete_node(obj);
    }
}

1 个答案:

答案 0 :(得分:0)

我只在呼叫成功时从树中删除节点。首先删除节点然后进行调用没有意义,如果失败则尝试重新添加节点。以下是仅在ajax调用成功时删除节点的示例:

var node = $('#tree').jstree('get_selected');

$.ajax({
    url: link,
    type: 'GET',
    data: { id: node.attr('id') },
    async: false,
    success: function (data, text) {
        $('#tree').jstree('delete_node', node);
    },
    error: function (request, status, error) {
    }
});

PS。这将获得当前选定的节点