尽管我无法从代码中打开单个节点,但最近在我的页面上集成 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() 函数。我不明白为什么它不起作用并尝试了很多方式。请注意,我的复选框插件功能正常。
非常感谢!
最佳答案
要在树完全加载后打开树中的所有节点,请绑定(bind) ready.jstree 事件。
$('#registerTree').bind("ready.jstree", function () {
$('#registerTree').jstree('open_all');
}).jstree();
树中所有节点加载完毕后,将触发就绪事件。
给出 JSBIN 中的示例 - Link
关于javascript - 即使加载后,jsTree 也不会 open_all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832015/