Cytoscape.js:停止两次布局事件?

时间:2015-12-07 10:23:39

标签: cytoscape.js

我用这种方式初始化我的网络:

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事件似乎被触发了两次:一次立即触发,一次布局实际停止,因此我的通知消息似乎立即被隐藏。

然后,如果用户通过界面重新运行布局,则会正确触发事件,并按预期显示/隐藏通知消息。

有人可以解释一下这里发生的事吗?感谢。

1 个答案:

答案 0 :(得分:1)

Cytoscape完全按照您的指定行事。您尚未设置初始化布局,之后您将调用布局。因此,默认布局正在运行,然后您的布局正在运行。

使用初始化布局或相应地更新听众。