我用这种方式初始化我的网络:
cytoscape({
container: container.find('.canvas').get(0),
...
done: function (e) {
var cy = e.cy;
cy.add(data);
var layout = cy.makeLayout({...});
layout.run();
},
});
我在layoutstart和layoutstop事件上有监听器来显示/隐藏一些通知消息,指示布局当前正在运行。
但是,当第一次加载页面时,layoutstop事件似乎被触发了两次:一次立即触发,一次布局实际停止,因此我的通知消息似乎立即被隐藏。
然后,如果用户通过界面重新运行布局,则会正确触发事件,并按预期显示/隐藏通知消息。
有人可以解释一下这里发生的事吗?感谢。
答案 0 :(得分:1)
Cytoscape完全按照您的指定行事。您尚未设置初始化布局,之后您将调用布局。因此,默认布局正在运行,然后您的布局正在运行。
使用初始化布局或相应地更新听众。