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

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

这就是我创建树的方式:

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

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

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

谢谢。

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

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

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