打开分支时,jstree关闭其余的分支

时间:2015-11-10 12:09:51

标签: javascript jquery jstree

我正在使用jsTree。如果我展开/打开一个分支,我希望其余的(已打开的)分支关闭/折叠。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

使用节点打开事件查看树并关闭其他节点。我认为你想继续打开刚刚扩展的节点及其所有父节点。

像这样:

$('#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