2016-01-09 37 views
2

我试图设置自己的ID到新创建的节点根据数据库的Ajax调用返回的值。它看起来像下面。所有功能完美地工作,例如:Jstree - set_id函数不起作用

$("#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

它应该工作 - 检查小提琴: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");