javascript - 如何使用新的 JSON 数据刷新 jsTree?

标签 javascript jquery jstree

我有一个文件上传元素,它会在更改时扫描文件名,并执行某些操作来获取有效的 treeJSON 变量。当函数第二次检测到更改时,treeJSON 变量将更新,我需要更新树。

我尝试了各种方法,例如refresh()destroy()等,但我无法在同一棵树上构造一个新树页面而无需重新加载页面。这是一个片段,我已经包含了所有功能并且它可以工作。重要的部分是使用 treeJSON

input.onchange = function (e) {
  // do something
};
var treeJSON = someVar;

$("#tree").jstree({
  core: {
    check_callback: true,
    data: treeJSON,
  },
});

最佳答案

您只需告诉 jstree 一次在哪里加载根 (core.data) 。刷新时,树将根据此内容重新填充。

我会这样做:

var treeJSON = 'originaltree';

input.onchange = function (e) {
    // something
    treeJSON = $.parseJSON(newtree); // if newtree is json
    var tree = $('#tree').jstree(true);
    tree.refresh();
}

$('#tree').jstree({
    'core': {
        'check_callback': true,
        'data':  treeJSON
    }
});

或者,如果您想根据哪个节点更具体:

$('#tree').jstree({
    'core': {
        'check_callback': true,
        'data': function (node, cb) {
            if (node.id === '#') { //Load root, will fire on first load as well as on refresh
                cb.call(this, treeJSON);
            }
        }

    }
});

关于javascript - 如何使用新的 JSON 数据刷新 jsTree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530623/

相关文章:

javascript - npm --> 错误 : Cannot find module 'readable-stream'

javascript - 有什么方法可以提高 JavaScript 数组的性能?

javascript - 当损坏的 url 不存在时,如何用默认值替换损坏的 img url

javascript - 如何在表单中保存 "add another"数据?

javascript - jQuery:将带有 html 内容的 var 粘贴到带有 .appendTo() 的标记中

javascript - 从 Angular 变量填充 jstree ThreeView

javascript - 在 canvas javascript 上绘制 10,000 个对象

javascript - Jquery after() 引号异常

javascript - jsTree 复选框 check_node 不工作

javascript - 如何在 Ember 中使用 jsTree 插件