我有一个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()方法来显示所需的节点吗?
答案 0 :(得分:2)
您只需使用node.neighborhood()
,例如cy.$(':selected').neighborhood().removeClass('hidden')
。