我正在尝试创建一个将所有节点折叠到某个特定级别的按钮。代码正在运行,但是节点崩溃的动画是错误的(节点正在移动到根目录,而不是移动到父节点)。
代码: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);
}
};
}
我想出了解决方案。您需要更新节点:
此部分:
$("#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