javascript - 即使加载后,jsTree 也不会 open_all

标签 javascript jquery jstree

尽管我无法从代码中打开单个节点,但最近在我的页面上集成 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/

相关文章:

javascript - 穿过带有文本/无图像的 Canvas 元素

javascript - 根据 html 表单中的多个下拉选择更改输入名称?

javascript - jQuery iPhone 风格复选框事件

javascript - 如何从 data.args 中获取新创建的节点的 id?

ruby-on-rails-3 - Rspec/Capybara/Selenium 测试在查找不应该存在的 Assets 路径时失败

javascript - 如何在 html/javascript 中设置打印预览的比例?

javascript - 如何编写搜索数组的循环

jquery - 使用存储在数组中的替代 JSON 格式创建动态 jstree

javascript - 函数 .jstree() 的 js 树错误

javascript - 三个JS - 如何用Y平面切割3D对象?