如何从外部函数访问“cy.load()”等

How do I access 'cy.load()' etc from outside function?

本文关键字:load cy 从外部 函数 访问      更新时间:2023-09-26

我对JavaScript和cytoscape.js库都很陌生。我一直在玩示例代码,但我坚持使用一些基本代码。

本质上讲,我希望能够做的是设置我的基本选项和样式,然后能够从服务器返回的 JSON 结构加载我的节点和边缘。我知道我可以在"就绪"函数中使用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>
在您的

示例中没有定义var cy,因此 js 使用id="cy"获取div

您需要添加此内容(如文档中所示(

$("#cy").cytoscape(options);
var cy = $("#cy").cytoscape("get");