jsTree最近在我的页面上的集成取得了巨大成功,尽管我无法从代码中打开单个节点。我从一个jQueryUi对话框中的空div开始,然后是一个树。当用户单击按钮时,它会打开对话框并在变量“registerHTML”中为树创建HTML。然后我使用这段代码
$( "#registerTree" ).jstree().destroy();
$( "#registerTree" ).html(registerHTML);
$('#registerTree').bind("loaded.jstree", function () {
$('#registerTree').jstree('open_all');
});
$( "#registerTree" ).jstree({
"checkbox" : {
"keep_selected_style" : false
},
"plugins" : [ "checkbox" ]
});
因为我为每个单击的按钮重新加载对话框,所以我会破坏树而不是完全重新创建它。我在之前的问题中读到,在设置jstree()之前最好先放置bind()或on()函数。我不明白为什么它不起作用并尝试了很多礼仪。请注意,我有复选框插件功能。
非常感谢!
答案 0 :(得分:3)
在完全加载树之后打开树中的所有节点绑定 ready.jstree 事件。
$('#registerTree').bind("ready.jstree", function () {
$('#registerTree').jstree('open_all');
}).jstree();
在树中加载完所有节点后触发就绪事件。
给出了JSBIN中的一个例子 - Link