具有静态节点和动态加载节点的JsTree

JsTree with static nodes and dynamic loading nodes

我有一个 jsTree,当它们展开时动态加载它的节点。这是树的init方法

function initializeTree(treeSelector, fnId,callback) {
treeSelector.jstree({
plugins: ["types", "wholerow"],
core: {
    animation: false,
    multiple: false,
    themes: {
    dots: false
    },
    data: {
           url: userlogicServlet,
           data: function (node) {
           return {cmd: 'getTreeNode', oid: node.id, fnId: fnId};
           }
          }
     }
}).on("ready.jstree", function () {
    callback(treeSelector);
});

}

另外我想添加两个静态节点到树的根。由于它们可能会有所不同,我想提供将静态节点添加为回调的功能。一旦树触发 "ready",就会执行回调。意味着第一级数据已加载(我相信 "ready" 事件被触发时就是这种情况)。

这是可能的回调方法之一,应该在树的顶部添加一个新节点。

 _addVariableToTree: function (tree) {
var variableNode = {"id": "addVariableNode", "text": "Add Variable", "type": "Add"};
tree.jstree().create_node( '#', variableNode, "first");
}

根据 jstree 文档,这应该可行。正如您可以假设的那样。

加载动态数据,执行回调,但未添加节点 "Add Variable"。同样,没有发生异常。

有没有人有想法或假设,这里可能有什么问题?

更新:

我刚刚试了一下这个 fiddler http://jsfiddle.net/DGAF4/1200/ 这似乎有效。

会不会,在我的例子中,我确实在加载第一个动态数据之前添加了静态节点,并且在接收到第一级后它又被清除了?

有了那个提琴手,我发现了我的错误。

我没有为树设置 check_callback : true 选项。 这样它就按预期工作了。