Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js可折叠树-展开/折叠节点_Javascript_Jquery_D3.js - Fatal编程技术网

Javascript 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

我有一个D3.js可折叠树,它有一堆节点,如下图所示


现在,如果节点展开,我想折叠所有其他节点。例如,在图中,如果展开了
分析节点
,则它应该折叠
数据节点
。我正在引用,但没有多大帮助。

将单击功能更改为此

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);
}