当我通过
的elements属性静态地向节点添加节点时 $('#cy').cytoscape(..)
布局选项有效,但是当我通过
添加它们时 cy.add({..})
布局被忽略。我只能对这些事件(click,mouseover,mouseout)应用新布局,如下所示:
cy.on('mouseover', function(event) {
cy.layout({name: "grid"});
});
并且布局发生了变化。尝试过其他事件:准备好,完成并加载,但它不起作用。
在动态添加元素时,是否有正常的方法来更改布局?
答案 0 :(得分:0)
初始化布局运行时,您无法调用第二个布局。正确配置初始化(http://cytoscape.github.io/cytoscape.js/#core/initialisation)以获得所需的所有数据和选项。
至于cy.add()
:除非您为这些元素指定所需的一切(包括位置),否则不要尝试在加载时使用cy.add()
。或者,在运行新布局之前,您必须至少等待layoutstop
。一般来说,您最好使用初始化选项为您做事,而不必担心边缘情况和事件自己同步。