所以,我的问题.我用一些数据初始化了我的树:
$('#tree').jstree({
'core' : {
'data' : [
'Simple root node',
{
'id' : 'node_2',
'text' : 'Root node with options',
'state' : { 'opened' : true, 'selected' : true },
'children' : [ { 'text' : 'Child 1' }, 'Child 2']
}
]
});
Run Code Online (Sandbox Code Playgroud)
但经过一些动作后,我想用新数据重绘树.我尝试使用API中的刷新和重绘方法,但它没有成功.
你能给我建议,如何刷新树(没有销毁 - >创建新实例(它可以工作,但会影响性能))?
小智 14
在版本3,您可以重新加载树:
$('#treeId').jstree(true).settings.core.data = newData;
$('#treeId').jstree(true).refresh();
Run Code Online (Sandbox Code Playgroud)
尝试在核心设置中包含check_callback参数(包括初始加载)并确保将其设置为true.然后你应该能够看到任何改变.没有这个,我发现我没有看到替换数据,只看到原始数据.
$('#tree').jstree({
'core' : {
'check_callback' : true,
'data' : [
'Simple root node',
{
'id' : 'node_2',
'text' : 'Root node with options',
'state' : { 'opened' : true, 'selected' : true },
'children' : [ { 'text' : 'Child 1' }, 'Child 2']
}
]
});
Run Code Online (Sandbox Code Playgroud)
这为我处理了刷新部分,但根据你正在做什么,你也可以打电话$('#tree').jstree('refresh');
.