Javascript 如何隐藏图形';vis.js中的s分支?

Javascript 如何隐藏图形';vis.js中的s分支?,javascript,collapse,expand,vis.js,vis.js-network,Javascript,Collapse,Expand,Vis.js,Vis.js Network,通过点击节点1205,我可以在vis.js中显示部分图形,但无法理解如何在第二次点击同一节点时使展开的部分消失 var节点=新的vis.DataSet([ {id:2696,标签:“l”}, {id:1205,标签:“l”}, {id:2697,标签:“l”} ]); var edges=new vis.DataSet([ {从:2696到:2697}, {从:2696到:1205} ]); var container=document.getElementById('mynetwork');

通过点击节点
1205
,我可以在vis.js中显示部分图形,但无法理解如何在第二次点击同一节点时使展开的部分消失

var节点=新的vis.DataSet([
{id:2696,标签:“l”},
{id:1205,标签:“l”},
{id:2697,标签:“l”}
]);
var edges=new vis.DataSet([
{从:2696到:2697},
{从:2696到:1205}
]);
var container=document.getElementById('mynetwork');
风险值数据={
节点:节点,
边缘:边缘
};
var网络=新的可视网络(容器,数据,{});
网络。打开(“单击”,功能(e){
tw_id=1205;
if(e.nodes[0]==tw_id){
sel_id=e.nodes[0];
var node=nodes.get(e.nodes[0]);
nodes.add([
{id:2021,标签:“l”},
{id:2047,标签:“l”}
]);
添加([
{从:1205到:2021},
{从:1205到:2047}
]);
节点。更新(节点);
}
});
#我的网络{
宽度:400px;
高度:300px;
边框:1px实心浅灰色;
}

只要跟踪哪些节点和边是给定节点扩展区域的一部分,就可以使用vis.js update函数始终隐藏它们。例如,要隐藏id为“id1”的节点,可以调用:

nodes.update([{id: 'id1', hidden: true}]);
(注意,update需要一个数组作为参数)。同样,可以通过调用以下命令来隐藏边:

edges.update([{id: 'edge1', hidden: true}]);

希望这有帮助

下面是一个如何基于@pgoldweic的选项以及预先定义每次单击节点1205时将显示/取消显示的边和节点的示例

代码维护一个布尔值,以指示下一个操作是显示还是隐藏其他节点。对于
hidden
属性,show为
false
,hide为
true

var节点=新的vis.DataSet([
{id:2696,标签:“2696”,隐藏:false},
{id:1205,标签:“1205”,隐藏:false},
{id:2697,标签:“2697”,隐藏:false},
{id:2021,标签:“2021”,隐藏:true},
{id:2047,标签:“2047”,隐藏:true}
]);
var edges=new vis.DataSet([
{id:'e1',from:2696,to:2697,hidden:false},
{id:'e2',from:2696,to:1205,hidden:false},
{id:'e3',from:1205,to:2021,hidden:true},
{id:'e4',from:1205,to:2047,hidden:true}
]);
var container=document.getElementById('mynetwork');
风险值数据={
节点:节点,
边缘:边缘
};
var网络=新的可视网络(容器,数据,{});
//真=隐藏;假=显示
var-toggle=false;
网络。打开(“单击”,功能(e){
tw_id=1205;
if(e.nodes[0]==tw_id){
nodes.update([
{id:2021,hidden:toggle},
{id:2047,hidden:toggle}
]);
edges.update([
{id:'e3',hidden:toggle},
{id:'e4',hidden:toggle}
]);
network.fit();
//开关拨动
切换=!切换;
}
});
#我的网络{
宽度:400px;
高度:300px;
边框:1px实心浅灰色;
}