jsTree - 在展开之前渲染所有节点?

jsTree - render all nodes before they are expanded?

当在树中选择一个项目时,我试图在单独的 div (.childNodes) 中显示 jsTree parent 所有后代的标题。我的问题是后代似乎被延迟加载,并且仅在展开节点时在 DOM 中呈现,而不是在选择节点时呈现。有没有办法在 parent 展开之前禁用它来渲染所有节点?

这就是我创建树的方式:

container.jstree({
'core': {
    'data': {
        'url': nodesContent,
    }
}});

这就是我处理所选事件的方式:

container.on("changed.jstree", function (e, data) {
var i,
    list = "<ul>";
var children = data.instance.get_children_dom(data.selected[0]);
for (i = 0; i < children.length; i++) {
    list += "<li>" + children[i].innerHTML + "</li>";
}
list += "</ul>";
jQuery(".childNodes").html(list);});

谢谢。

不,它不能被禁用 - 只有可见的节点保留在 DOM 中,但是您可以按照文档中的建议进行操作,并使用内部 jstree 模型来检索标题。

container.on("changed.jstree", function (e, data) {
    var i,
        list = "<ul>";
        children = data.instance.get_node(data.selected[0]).children;
    for (i = 0; i < children.length; i++) {
        list += "<li>" + data.instance.get_node(children[i]).text + "</li>";
    }
    list += "</ul>";
    jQuery(".childNodes").html(list);
});

如果要显示所有后代(不仅是直系)替代:
data.instance.get_node(data.selected[0]).children
与:
data.instance.get_node(data.selected[0]).children_d