ste*_*hay 2 javascript svg d3.js
在使用d3.js(示例)的树布局上,我想要折叠不在已单击的分支中的节点.
例如,在上面的演示中,请尝试以下操作:
现在你应该看到"孩子1"和"孩子2"的孩子.
我希望发生以下情况:
因此,应该隐藏除"活动"分支之外的节点的子节点.
我怎样才能最好地接近这个?(当然有效,因为我将使用相当大的数据集)
一个简单的解决方案是修改click函数,这样如果节点有父节点,则父节点的子节点都会折叠,但前提是子节点不是被单击的节点.
function click(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
// If the node has a parent, then collapse its child nodes
// except for this clicked node.
if (d.parent) {
d.parent.children.forEach(function(element) {
if (d !== element) {
collapse(element);
}
});
}
update(d);
}
Run Code Online (Sandbox Code Playgroud)
更新了jsbin:http://jsbin.com/etIJABU/2/edit
| 归档时间: |
|
| 查看次数: |
4852 次 |
| 最近记录: |