jstree 在打开分支时关闭其余分支

jstree close rest of the branches when opening a branch

我正在使用 jsTree。如果我 expand/open 一个分支,我希望其余(打开的)分支获得 closed/collapsed。

我该怎么做?

使用节点打开事件查看树并关闭其他节点。我想你想保持打开刚刚展开的节点及其所有父节点。

像这样:

$('#tree').on('open_node.jstree', function (e, data) {

    var nodesToKeepOpen = [];

        // get all parent nodes to keep open
        $('#'+data.node.id).parents('.jstree-node').each(function() {
           nodesToKeepOpen.push(this.id);
        });

        // add current node to keep open
        nodesToKeepOpen.push( data.node.id );

        // close all other nodes
        $('.jstree-node').each( function() {
            if( nodesToKeepOpen.indexOf(this.id) === -1 ) {
                $("#tree").jstree().close_node(this.id);
            }
        })
})

观看演示 ​​JS Fiddle