javascript - JsTree具有静态节点和动态加载节点

标签 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);
});

}

此外,我想向树的根添加两个静态节点。由于它们可能会有所不同,我想提供将静态节点添加为回调的函数。一旦树“准备好”触发,回调就会立即执行。意味着第一级数据已加载(我相信这是“就绪”事件被触发时的情况)。

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

 _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/

相关文章:

javascript - 同步 javascript 调用

javascript - jstree jquery如何迭代所有节点

json - 如何消除无子节点的递归 AJAX 请求?

javascript - 如何只为超过 2 级的节点打开 jsTree 上下文菜单?

javascript - 使用Javascript的match函数提取字符串的一部分

javascript - Jersey 休息服务的 JSON 输入/输出在 JavaScript 中无法使用

javascript - 为什么这里需要一个函数名?

javascript - 获取简码按钮以粘贴到窗口/页面部分的底部中心

php - javascript打印所有表和单个表

javascript - 如何让网站在警报/弹出窗口下继续更新?