我有一个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/ 这似乎有效。
可能是,在我的情况下,我确实在加载第一个动态数据之前添加了静态节点,并且在收到第一个级别后它会再次被扫除?
答案 0 :(得分:0)
有了这个小提琴手,我发现了我的错误。
我没有为树设置check_callback : true
选项。
因为它按预期工作。