Cytoscape JS - 显示节点邻域?

时间:2015-03-10 17:48:11

标签: jquery nodes cytoscape.js

我有一个JSON格式的数据集,其中包含有关节点和边缘的信息,我用它来生成cytoscapeJS中的网络图。 JSON数据包含节点的id,value,shape,color和visibleDisplay('element'或'none')属性以及 edge 的id,source,target和label。当 cy 容器首次初始化时,我的样式表使用此“visibleDisplay”属性根据需要显示/隐藏节点。<​​/ p>

我想允许用户取消隐藏节点,并选择“显示邻居”。我修改了我的旧代码以使用集合,但它仍然不起作用:

function showNeighbourhood() {
   var eleID;
   var neighbourArray= new Array();

   var neighbours= cy.collection(); // collection

   cy.nodes().forEach(function( ele ) {
       if(ele.selected()) { // get the currently selected node.
          eleID= ele.id();
         }
      });

   // Find its connected neighbours.
   cy.edges().forEach(function( edg ) {
       if(edg.data('source') === eleID) {
          neighbourArray[neighbourArray.length]= edg.data('target');
         }
       else if(edg.data('target') === eleID) {
          neighbourArray[neighbourArray.length]= edg.data('source');
         }
      });

   // Add the array to the collection.
   neighbours.add(neighbourArray);

  // Show neighbourhood, using the collection.
   neighbours.show();
  }

有关如何使这项工作的任何建议? 我不能在集合上使用 show()方法来显示所需的节点吗?

1 个答案:

答案 0 :(得分:2)

您只需使用node.neighborhood(),例如cy.$(':selected').neighborhood().removeClass('hidden')