3

我正在使用 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']
    });

谢谢!

4

2 回答 2

1

您应该查看状态插件,您必须在选中的节点上设置状态才能打开。

在插件数组中添加“状态”。在树的 json 中,在每个节点的数据之后,添加一个对象,如下所示: state: { opens : true }

于 2014-05-21T20:50:00.087 回答
0

我不认为状态插件是必需的。它保存树的状态并在下次遇到树时将树重新打开到该状态。

但重要的是,@alostr 是正确的,如果您将节点的数据设置为state: { opens : true }它将在显示该节点后打开该节点。

于 2015-01-30T21:39:52.350 回答