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

时间:2016-08-31 19:44:46

标签: javascript jquery html jstree jstree-dnd

我正在使用jsTree创建两个内容表(A和B),我将节点从A移动到B,我希望每次删除节点时都将树B的json保存到数据库中树B,但是当我在drop事件上得到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"]
    });

1 个答案:

答案 0 :(得分:1)

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

$(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);
});