A具有jsfiddle,其具有简单的数据结构,可在单击节点时将子节点添加到节点。我想让它查找点击的节点的现有子节点。文档显示node.children(); - 这样做 - 但它返回一个空列表。不知道我做错了什么。
下面是调用子功能的片段。
在节点单击处理程序中调用GetMoreData。
有什么建议吗?
function GetMoreData(cy, event)
{
debugger;
var children = event.cyTarget.children();
var test = cy.nodes().children();
var parentID = event.cyTarget.data('id');
var nodeID = event.timeStamp.toFixed(0) + "x";
cy.add({group:"nodes", data: {id:nodeID, guid:nodeID, image:'https://circabc.europa.eu/images/extension/help.png'},
position:{x:event.cyPosition.x, y:event.cyPosition.y}});
var edgeID = parentID+"x"+nodeID;
cy.add({group:"edges", data: {id:edgeID, source:parentID, target:nodeID}});
var nodex = cy.elements('node[id="x"]');
var layout = cy.makeLayout({ name: 'breadthfirst', animate: true, animationDuration: 500, fit: false });
layout.run();
}
答案 0 :(得分:0)
Cytoscape.js支持compound graphs。不幸的是,"父母"和孩子"是incomers和outgoers的定向非复合图(通常是DAG或树)中经常使用的词 - 造成歧义。
顺便说一句:确保您的图表和布局是正确的,源和目标定义在正确的方向。