Cytoscape.js:根据节点隐藏cxtmenu条目?

时间:2016-08-22 15:45:27

标签: contextmenu cytoscape.js

我使用cytoscape-cxtmenu.js在节点上提供命令,但并非所有节点都支持所有命令。 如何才能显示节点支持的命令?

var defaults = {
    selector: 'node',
    commands: [
        // everyone has a name
        {content: 'tell name',
         select: function(node) {console.log(node.data().name);}},
        // not everyone has a spouse
        {content: 'tell spouse',
         select: function(node) {console.log(node.data().spouse);}},
]};

var cxtmenuApi = cy.cxtmenu(defaults);

1 个答案:

答案 0 :(得分:1)

使用多个上下文菜单,每个菜单都有不同的选择器。

var cxtmenuApi1 = cy.cxtmenu({ selector: 'node[foo="bar"]' /* ... */ });

var cxtmenuApi2 = cy.cxtmenu({ selector: 'node[foo="baz"]' /* ... */ });

每个菜单都有自己的一组命令,因此您可以使用相同的命令,但禁用一些命令(disabled: true),但启用2,等等。

或者,您只能指定适用于每组节点的命令 - 但随后命令的相对位置可能因节点而异。