即使加载,jsTree也不会open_all

时间:2014-07-18 19:00:36

标签: 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()函数。我不明白为什么它不起作用并尝试了很多礼仪。请注意,我有复选框插件功能。

非常感谢!

1 个答案:

答案 0 :(得分:3)

在完全加载树之后打开树中的所有节点绑定 ready.jstree 事件。

$('#registerTree').bind("ready.jstree", function () {
    $('#registerTree').jstree('open_all');
}).jstree();

在树中加载完所有节点后触发就绪事件。

给出了JSBIN中的一个例子 - Link