隐藏部分单击Dynatree值

nls*_*k01 5 html javascript jquery dynatree

有如下树形结构

Section 1
item1
item2
Section 2
item5
Run Code Online (Sandbox Code Playgroud)

我可以点击任何项目并使用dynatree onActivate函数和此代码隐藏所有其他项目

  onActivate: function(node) {
            var resultId = "#" + node.data.title;
            resultId = resultId.replace(/\s/g, '');
            $('#contents>div').not(resultId).hide();
            $(resultId).show();
        },
Run Code Online (Sandbox Code Playgroud)

我的HTML就是这个

<div class="container-fluid text-left">
    <div class="row content">
        <div class="col-sm-2 sidenav" id="tree"> </div>
        <div class="col-sm-8" id="contents">

            <div id="item1">
                <table id="item1grid"></table>
            </div>
            <div id="item2">
                <table id="item2grid"></table>
            </div>
            <div id="item5">
                <table id="item5grid"></table>
            </div>
        </div>
        <div id="info"> </div>
    </div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我如何扩展这个html和函数,所以如果我点击树中的"Section 1"它只显示该部分中的所有项目,即点击"Section 1"只显示item1和item2

Con*_*eUA 3

也许您可以通过使用“onActivate”回调的传入节点对象的一些属性来实现此目的。您需要检查激活的对象是否是文件夹,如果是,则显示该元素的所有子元素。尝试将此代码片段附加到 onActivate 回调中:

if (node.data.isFolder) {
    for (var i = 0; i < node.childList.length; i++) {
        $('#' + node.childList[i].data.key).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

请随意使用 console.log 转储整个对象并检查您可以使用哪些字段。

您能否提供一个 jsfiddle 来检查您到目前为止所拥有的内容?