jsTree:每次删除节点时获取新树 JSON

jsTree: Get new tree JSON every time I drop a node

我正在使用 jsTree 创建两个目录(A 和 B),我将节点从 A 移动到 B,我想获取树 B 的 json 以将其保存在数据库中一次我在树 B 中删除一个节点,但是当我在删除事件中得到 json 时,它只得到 json 而没有新节点。

我需要获取包含新节点的树。我使用此代码在事件 "dnd_stop.vakata" 中得到 json:

$(document).on('dnd_stop.vakata', function (e, data) {
    var json = $("#JSTreeTOC").jstree(true).get_json();
    console.log(JSON.stringify(json));
    // Here I want to make an AJAX call to save the tree in database
});

此外,这是我创建 jstree 的代码:

//jsTree "A":
$('#JSTreeServicios').jstree({
        'core': {
            "check_callback": false,
            'data': tree
        },
        "dnd": {
            "always_copy": true,
        },
        "plugins": ["dnd", "search", "types", "contextmenu", "sort"]
    });


//jsTree "B":
$('#JSTreeTOC').jstree({
        'core': {
            "check_callback": true,
            'data': tree
        },
        "plugins": ["dnd", "search", "types", "sort", "contextmenu"]
    });

一段时间后,我意识到 jsTree 没有在 "dnd_stop.vakata" 事件运行时正确更新,它发生在几毫秒后,为了解决本地主机上的问题,我添加了以下几行:

$(document).on('dnd_stop.vakata', function (e, data) {
    setTimeout(function(){
        var json = $("#JSTreeTOC").jstree(true).get_json();
        console.log(JSON.stringify(json));
        // Here I make an AJAX call to save the tree in database
    }, 100);
});