我是jqTree的新手,我想在ajax调用后重新加载树。我有这样的事情:
$("select").change(function(){
var url = 'lab.json';
if ($(this).val() === 'RAD') {
url = 'rad.json';
}
$.get(
url,
function(jsonData) {
$("#treedata").tree({data: jsonData});
},
"json"
);
});
第一个调用正在运行,但是对于下一个调用,树不会使用新数据进行更新。
知道初始化后如何更新树吗?
谢谢
编辑:
我找到了解决方案,但这并不完美。如果有人有更好的解决方案,请告诉我:)
$("#treebox").empty().append('<div id="treedata"></div>');
$("#treedata").tree({
data: jsonData
});
我必须使用$ .empty()通过jqTree删除生成的内容,然后每次我想用新数据更新树时初始化jqTree。
最佳答案
您可以使用函数“ loadData”将新数据加载到树中。最新版本的jqTree(0.6)支持此功能。
例如:
// Assuming the tree exists
var new_data = [
{
label: 'node1',
children: [
{ label: 'child1' },
{ label: 'child2' }
]
},
{
label: 'node2',
children: [
{ label: 'child3' }
]
}
];
$('#tree1').tree('loadData', new_data);
另请参见http://mbraak.github.com/jqTree/#functions-loadData