我的代码构建了一个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);
}
但是我收到一个错误:未捕获的TypeError:无法读取属性' className'未定义的
(在jstree.js中:var c = this.get_container_ul()[0].className;
)
哪个接缝它找不到第一个孩子的jstree-children。
我做错了什么? 我没有找到任何直接的例子,说明如何刷新树的整个html而不破坏它并重新构建它。
感谢您的帮助
答案 0 :(得分:2)
您可以按以下方式替换数据。查看演示 - Fiddle。
$("#tree").jstree().settings.core.data = newData;
$("#tree").jstree().refresh(true);