cytoscape.js - 如何确定父节点是否有子节点

时间:2016-04-19 16:18:52

标签: javascript cytoscape.js

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

1 个答案:

答案 0 :(得分:0)

Cytoscape.js支持compound graphs。不幸的是,"父母"和孩子"是incomersoutgoers的定向非复合图(通常是DAG或树)中经常使用的词 - 造成歧义。

顺便说一句:确保您的图表和布局是正确的,源和目标定义在正确的方向。