jstree - 如何用 html 刷新 jstree 而不是重建它

标签 jstree

我的代码构建了一个 html 并使用该 html 启动 jstree :

var html = buildHtmlunorderedList()
$("#tree").html(html);
$("#tree").jstree({
    "core":{"multiple":false},
    "state":{"key":"vmsTree22"},
            "plugins":["state","sort"]
}).bind("select_node.jstree",handleLeftClick);`

这工作完美。 现在,每隔几分钟就会再次构建 html,我想用它刷新 jstree,而不需要销毁它并再次启动(这会在每次再次构建树时导致轻弹):

inside a loop {

 html = buildHtmlunorderedList();
  var tree = $('#tree').jstree({
            "core":{"data":html}
});
tree.refresh(true);
}

但我收到错误:未捕获类型错误:无法读取未定义的属性“className” (在 jstree.js 中:var c = this.get_container_ul()[0].className;) 它没有找到 jstree-children 类的第一个子级。

我做错了什么? 我没有找到任何直接的示例来说明如何刷新树的整个 html 而不破坏它并再次构建它。

感谢您的帮助

最佳答案

您可以按如下方式替换数据。查看演示 - Fiddle .

$("#tree").jstree().settings.core.data = newData;
$("#tree").jstree().refresh(true);

关于jstree - 如何用 html 刷新 jstree 而不是重建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35739914/

相关文章:

jstree - JS Tree-选中所有子节点时选择父节点

jquery - 如何在 JS 树库中隐藏复选框

jquery - jstree中绑定(bind)展开点击事件

checkbox - jstree 隐藏子复选框,只显示父复选框

javascript - jQuery JSTree "uncheck node"性能问题

jquery - jsTree 将子节点从一棵树移动到另一棵树

mysql - jsTree 集成 Mysql 模式

c# - 在 Asp.Net MVC 中使用 JsTree 延迟加载 TreeView

javascript - 如何使用内联 Json 加载 jstree?

json - 带有 JSON 的 JsTree 卡在加载中