javascript - D3.js 可折叠树 - 展开/折叠节点

标签 javascript jquery d3.js

我有一个 D3.js 可折叠树,它有一堆节点,如下图所示 enter image description here

现在我想在展开节点时折叠所有其他节点。例如在图中,如果 analytics node 展开,那么它应该折叠 data node。我指的是 D3.js collapsible tree - expand/collapse intermediate nodes但帮助不大。

最佳答案

点击功能改成这个

function click(d) {
    for (var i = 0; i < d.parent.children.length; i++) {
        if (d.parent.children[i].name !== d.name) {

            console.log(d.parent.children[i])

            if (d.parent.children[i].children) {
                d.parent.children[i].children = d._children;
                d.parent.children[i].children = null;
            }           
        }
    };

    if (d.children) {
        d._children = d.children;
        d.children = null;
    } else {
        d.children = d._children;
        d._children = null;
    };

    update(d);
}

希望对你有帮助

关于javascript - D3.js 可折叠树 - 展开/折叠节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33960316/

相关文章:

javascript - 查找与 Node 列表有关系的 Node

javascript - 移除与球碰撞的物体

javascript - 如何知道JS文件中的 Action 类型

javascript - 单击从控制台工作但不在代码中工作

javascript - 将保存 CSV 数据的数组合并到一个对象数组中

javascript - 使用 await 在 try/catch block 中声明一个 const

javascript - 将 Data 对象从 apollo hook 调用转换为 Javascript 数组

javascript - 我可以使用 d3.json 处理类似于 json 格式的字符串吗?

r - 为什么networkd3 R中的forceNetwork显示不在边缘列表中的所有节点?

Javascript Array.from(...).forEach 赋值?