将节点动态添加到图形时,布局不起作用

时间:2014-04-23 13:08:56

标签: cytoscape.js

当我通过

的elements属性静态地向节点添加节点时
    $('#cy').cytoscape(..) 

布局选项有效,但是当我通过

添加它们时
    cy.add({..}) 

布局被忽略。我只能对这些事件(click,mouseover,mouseout)应用新布局,如下所示:

    cy.on('mouseover', function(event) {
    cy.layout({name: "grid"});          
    });

并且布局发生了变化。尝试过其他事件:准备好,完成并加载,但它不起作用。

在动态添加元素时,是否有正常的方法来更改布局?

1 个答案:

答案 0 :(得分:0)

初始化布局运行时,您无法调用第二个布局。正确配置初始化(http://cytoscape.github.io/cytoscape.js/#core/initialisation)以获得所需的所有数据和选项。

至于cy.add():除非您为这些元素指定所需的一切(包括位置),否则不要尝试在加载时使用cy.add()。或者,在运行新布局之前,您必须至少等待layoutstop。一般来说,您最好使用初始化选项为您做事,而不必担心边缘情况和事件自己同步。