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

时间:2016-03-10 15:07:55

标签: javascript jquery jstree

我有一个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"事件被触发时就是这种情况)。

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

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

遵循jstree文档,这应该有效。你可以假设它没有。

加载动态数据,执行回调,但节点"添加变量"没有被添加。同样,也没有例外。

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

更新

我只是尝试了这个小提琴手http://jsfiddle.net/DGAF4/1200/ 这似乎有效。

可能是,在我的情况下,我确实在加载第一个动态数据之前添加了静态节点,并且在收到第一个级别后它会再次被扫除?

1 个答案:

答案 0 :(得分:0)

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

我没有为树设置check_callback : true选项。 因为它按预期工作。