【问题标题】:d3.js tree: How do I remove a node's siblings when I click on it?d3.js 树:单击时如何删除节点的兄弟节点?
【发布时间】:2014-11-27 17:54:03
【问题描述】:

这里的总 d3 新手,

我使用一些非常有用且内容丰富的互联网教程制作了一个粗略的树形图。

现在,当一个节点被点击时,其兄弟节点的子节点崩溃。

 if (d !== root) {
    if (d.parent){
        d.parent.children.forEach(function(element) {
        if (d !== element) {
            collapse(element);
        }
    });
}

}

http://codepen.io/depaorca/pen/qEdLOr?editors=100

相反,我现在希望在单击节点时删除每个级别的兄弟节点,并在关闭节点时重新出现。

我知道我需要在函数 click(d) 中执行此操作,我坚持的是,我可以更改我的代码以简单地用某种删除函数替换折叠的代码吗?有没有我完全忽略的简单解决方案?

【问题讨论】:

    标签: d3.js tree nodes jstree siblings


    【解决方案1】:

    因此,如果您查看click(d) 的最后一位,您会发现它正在检查节点是否有父节点并折叠所有不等于单击的节点的节点。如果不是折叠它们而是将它们从父级的 .children 属性移动到父级的 ._children 属性中,它们应该被隐藏。

    那你只需要写一个例子,让父级在 ._children 中有对象,然后将它们移回 .children 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 2012-02-05
      • 1970-01-01
      相关资源
      最近更新 更多