我有一个 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);
});
}
此外,我想向树的根添加两个静态节点。由于它们可能会有所不同,我想提供将静态节点添加为回调的函数。一旦树“准备好”触发,回调就会立即执行。意味着第一级数据已加载(我相信这是“就绪”事件被触发时的情况)。
这是可能的回调方法之一,应该在树的顶部添加一个新节点。
_addVariableToTree: function (tree) {
var variableNode = {"id": "addVariableNode", "text": "Add Variable", "type": "Add"};
tree.jstree().create_node( '#', variableNode, "first");
}
按照 jstree 文档,这应该可以工作。正如您可以假设的那样,事实并非如此。
动态数据已加载,回调已执行,但节点“添加变量”未添加。同样,没有发生任何异常。
有人有想法或假设吗,这里可能出了什么问题?
更新:
我刚刚尝试了一下这个 fiddler http://jsfiddle.net/DGAF4/1200/ 这似乎有效。
在我的例子中,我确实在加载第一个动态数据之前添加了静态节点,并且一旦接收到第一个级别,它就会再次被清除?
最佳答案
通过那个 fiddle 手,我发现了我的错误。
我没有为树设置 check_callback : true
选项。
这样它就可以按预期工作。
关于javascript - JsTree具有静态节点和动态加载节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35920228/