如何在 jstree 中隐藏未选择的检查节点

How to hide unselected checknode in the jstree

作为标题,我如何在 jstree 中隐藏未选中的检查节点。我只想在 jstree 中显示检查节点及其 parent。

非常感谢

您将需要过滤掉完全选中的节点及其可能部分选中的父节点 - 如果选中的节点有一些未选中的兄弟节点。对于所有这些节点,将 state.hidden 设置为 true。然后重画树。

查看下面的代码,同时查看演示 - Fiddle Demo

$("#yourTreeId")
    .jstree('get_json', '#', {
        flat: true
    })
    .forEach(function(node) {
        if (!node.state.selected && $('#' + node.a_attr.id).find('.jstree-undetermined').length === 0) {
            $("#yourTreeId").jstree('get_node', node).state.hidden = true;
        }
    });

$('#yourTreeId').jstree('redraw', true);