我已经使用返回 JSON 数据的 AJAX 调用加载了 jsTree。如何刷新树以便它重新加载其内容?
事实证明就像打电话一样简单:
tree.jstree("refresh");
在版本 3 中,您可以重新加载树:
$('#treeId').jstree(true).settings.core.data = newData;
$('#treeId').jstree(true).refresh();
var tree = jQuery.jstree._reference("#files");
tree.refresh();
或
var tree = jQuery.jstree._reference("#files");
var currentNode = tree._get_node(null, false);
var parentNode = tree._get_parent(currentNode);
tree.refresh(parentNode);
对于 jstree3 。我使用 destroy() 函数并再次创建运行 jstree() 函数的树
$('#treeId').data('jstree', false).empty().jstree(json);
我的jsTree插件版本是3.3.15
export function jsTreeUpdate(demo_id,treeData) {
let instance = $('#' + demo_id).jstree(true);
// set new data
instance.settings.core.data = treeData;
//important to refresh the tree, must set the second parameter to true
instance.refresh(false,true);
}
上面的代码是更新jsTree Node并显示新的treeData对应状态的重要函数。