Javascript D3.js可折叠树-展开/折叠节点
我有一个D3.js可折叠树,它有一堆节点,如下图所示Javascript D3.js可折叠树-展开/折叠节点,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我有一个D3.js可折叠树,它有一堆节点,如下图所示 现在,如果节点展开,我想折叠所有其他节点。例如,在图中,如果展开了分析节点,则它应该折叠数据节点。我正在引用,但没有多大帮助。将单击功能更改为此 function click(d) { for (var i = 0; i < d.parent.children.length; i++) { if (d.parent.children[i].name !== d.name) { conso
现在,如果节点展开,我想折叠所有其他节点。例如,在图中,如果展开了
分析节点
,则它应该折叠数据节点
。我正在引用,但没有多大帮助。将单击功能更改为此
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);
}
功能点击(d){
for(var i=0;i
希望能有所帮助在Przemek提示的帮助下,我得到了解决方案。现在它工作得很好。:)
功能点击(d){
var指数;
对于(var i=0;i)扩展节点的结构是什么?折叠节点的结构是什么?这对我没有帮助。它只是折叠扩展节点,但单击同一节点后不会给出任何东西,即,它变得不清晰。感谢您的帮助@Przemek
function click(d) {
var index;
for(var i=0;i<d.parent.children.length;i++){//length of current label
if(d.parent.children[i].name===d.name)
index = i;
};
for(var i=0;i<d.parent.children.length;i++){
if(typeof d.parent.children[i].children!=="undefined" && i!=index){//if child is expnd then make null
d.parent.children[i]._children=d.parent.children[i].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);
}