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

jstree close rest of the branches when opening a branch

本文关键字:分支 余分支 jstree      更新时间:2023-09-26

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

我该怎么做?

使用节点打开事件查看树并关闭其他节点。我认为您希望保持打开刚刚展开的节点及其所有父节点。

像这样:

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