D3特定级别的倒塌树(错误的动画)

问题描述 投票:0回答:1

我正在尝试创建一个将所有节点折叠到某个特定级别的按钮。代码正在运行,但是节点崩溃的动画是错误的(节点正在移动到根目录,而不是移动到父节点)。

代码:code pen问题应该在这里:

$("#teste").click(function(){
    root.children.forEach(collapseLevel);
    update(root);
}); 

function collapseLevel(d) {
if (d.depth == 1) { 
console.log(d.name + " " + d.depth); 
if (d.children) {
console.log(d.children);
console.log(d);
d._children = d.children;
d.children = null;
console.log(d);
  }
};
}
javascript d3.js tree nodes
1个回答
0
投票

我想出了解决方案。您需要更新节点:

此部分:

$("#teste").click(function(){
    root.children.forEach(collapseLevel);
    update(root);
});

删除更新(根),并在函数内设置更新:

$("#teste").click(function(){
    root.children.forEach(collapseLevel);
});

function collapseLevel(d) {
if (d.depth == 1) { 
console.log(d.name + " " + d.depth); 
if (d.children) {
console.log(d.children);
console.log(d);
d._children = d.children;
d.children = null;
update(d);
  }
};
}

您可以在这里找到工作代码:CodePen

© www.soinside.com 2019 - 2024. All rights reserved.