向 jstree 容器中插入动态数据
Inserting dynamic data to jstree container
我想将动态数据插入我的 div 容器中作为 jstree。但是,我没有任何风格。
html = '<ul><li>Root node 1<ul><li id="child_node_1">Child node 1</li><li>Child node 2</li></ul></li><li>Root node 2</li></ul>';
$('#div_tree_content').html(html);
$('#div_tree_content').jstree('refresh');
只是说我已经初始化 div 如下:
$(document).ready(function(){
$('#div_tree_content').jstree();
}
刷新时出现错误:
TypeError: this.get_container_ul(...)[0] is undefined
这不是 jstree 的工作方式 - 您不能交换容器中的 HTML 并期望它工作。您必须使用 delete_node
、create_node
、rename_node
修改结构或使用新数据重新创建树(如果是 HTML,您需要先销毁当前实例,添加新的 HTML 并重新创建实例)。
还有更高级的方法来换出数据 - 例如将 core.data
设置为一个函数,但我怀疑你是否需要它。
因此,以您的示例为基础:
var html = '...';
$('#div_tree_content').jstree(true).destroy();
$('#div_tree_content').html(html);
$('#div_tree_content').jstree();
我想将动态数据插入我的 div 容器中作为 jstree。但是,我没有任何风格。
html = '<ul><li>Root node 1<ul><li id="child_node_1">Child node 1</li><li>Child node 2</li></ul></li><li>Root node 2</li></ul>';
$('#div_tree_content').html(html);
$('#div_tree_content').jstree('refresh');
只是说我已经初始化 div 如下:
$(document).ready(function(){
$('#div_tree_content').jstree();
}
刷新时出现错误:
TypeError: this.get_container_ul(...)[0] is undefined
这不是 jstree 的工作方式 - 您不能交换容器中的 HTML 并期望它工作。您必须使用 delete_node
、create_node
、rename_node
修改结构或使用新数据重新创建树(如果是 HTML,您需要先销毁当前实例,添加新的 HTML 并重新创建实例)。
还有更高级的方法来换出数据 - 例如将 core.data
设置为一个函数,但我怀疑你是否需要它。
因此,以您的示例为基础:
var html = '...';
$('#div_tree_content').jstree(true).destroy();
$('#div_tree_content').html(html);
$('#div_tree_content').jstree();