具有静态节点和动态加载节点的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
选项。
这样它就按预期工作了。
我有一个 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
选项。
这样它就按预期工作了。