Jstree - set_id函数不起作用

时间:2016-01-09 22:53:54

标签: jquery treeview jstree

我试图将自己的ID设置为新创建的节点,其基础是来自数据库的ajax调用返回的值。它看起来像下面。所有功能都完美无缺,例如:

$("#mySelector").jstree(true).rename_node(data.node, newlyCreatedName);

但是set_id仍然无法正常工作。我基于官方的jstree API: https://www.jstree.com/api/#/?q=set_id&f=set_id(obj,id)

$("#mySelector").jstree({ // my stuff 

})
.bind("create_node.jstree", function (event, data) {
    // some logic
    $.ajax({
            url: uri,
            data: { parameters },
            type: "GET",
            dataType: "json",
            success: function (output) {
                / some logic
                var setIdResult = $("#mySelector").jstree(true).set_id(data.node, output.newId);
                // set_id returns false :/
            }
})

提前感谢您的帮助。

修改 它有效:)

在触发set_id函数之前我犯了一点错误。

1 个答案:

答案 0 :(得分:1)

它应该工作 - 检查小提琴:Fiddle。也许你没有在output.newId中获得价值。

或者您可以在成功调用ajax后创建一个新节点 - 这样您就可以将新ID直接传递给create_node函数:

var parentNodeId = 'someId'; // use id of parent node, null or '#' for root level
$("#mySelector").jstree()
     .create_node(parentNodeId,  { "id" : newNodeId, "text" : "New node" }, "last");