我正在使用jsTree来显示我的数据库层次结构类别,如交互式树。初始加载是使用JSON完成的,默认情况下会检查一些类别。 jsTree知道选择了哪些类别,因为它将它们显示为已选中(我正在使用复选框插件),但我希望能够在树载入时打开已检查的节点(及其所有父节点)。
我需要这样做,因为当用户打开带有树的页面时,他不知道在不扩展整个树的情况下可能会选择某些类别,而我只想扩展那些被检查的节点。
到目前为止,这是我的代码:
var tree = $('.tree').bind('loaded.jstree', function (e, data) {
// I assume that logic that expand checked nodes must be placed here, after tree is loaded
})
.jstree({
// Configure JSON data plugin
'json_data': {
'data': [<this is initial json data>]
},
'checkbox': {
'override_ui': true,
'two_state': true,
'real_checkboxes': true
},
// Specify which plugins to load
'plugins': ['themes', 'json_data', 'ui', 'checkbox']
});
谢谢!
答案 0 :(得分:1)
你应该看一下状态插件, 您必须将已检查节点的状态设置为打开。
在插件数组中添加&#34; state&#34;。 在树的json中,在每个节点的数据之后,添加如下对象: 州:{ 打开:是的 }
答案 1 :(得分:0)
我不认为州插件是必需的。它会保存树的状态,并在下次遇到树时重新打开该状态。
重要的是,@ alostr是正确的,如果您将节点的数据设置为 state:{opened:true} ,它将在显示后打开该节点。