我对Javascript和cytoscape.js库都很新。我一直在玩示例代码,但我遇到了一些基本的问题。
基本上,我想要做的是设置我的基本选项和样式,然后能够从我的服务器返回的JSON结构加载我的节点和边。我知道我可以在'ready'函数中使用cy.load,因为我在下面
$(loadCy = function(){
options = {
showOverlay: false,
minZoom: 0.5,
maxZoom: 2,
style: cytoscape.stylesheet()
.selector('node')
.css({
'content': 'data(name)',
'font-family': 'helvetica',
'font-size': 14,
'text-outline-width': 3,
'text-outline-color': '#888',
'text-valign': 'center',
'color': '#fff',
'width': 'mapData(weight, 30, 80, 20, 50)',
'height': 'mapData(height, 0, 200, 10, 45)',
'border-color': '#fff'
})
.selector(':selected')
.css({
'background-color': '#000',
'line-color': '#000',
'target-arrow-color': '#000',
'text-outline-color': '#000'
})
.selector('edge')
.css({
'width': 2,
'target-arrow-shape': 'triangle'
})
,
ready: function(){
cy = this;
cy.load({
nodes: [
{ data: { id: "n1" } },
{ data: { id: "n2" } }
],
edges: [
{ data: { id: "e1", source: "n1", target: "n2" } }
]
})
}
};
$('#cy').cytoscape(options);
});
但是我想知道是否有办法让文档准备就绪,然后再按照按钮点击访问cy.load?
例如;
<script>
$("#button").click( function()
{
cy.load(<data returned from server>)
}
</script>
谢谢。
更新:
很抱歉这里是HTML代码。基本上Cytoscape在这个DIV中绘制图形
<body>
<div id="cy"></div>
</body>
答案 0 :(得分:3)
var cy
未定义,因此js使用id="cy"
您需要添加此内容(如documentation)
$("#cy").cytoscape(options);
var cy = $("#cy").cytoscape("get");