Cytoscape.js node/edge 标签上的标签编辑器 tap/click

Cytoscape.js node/edge label editor on label tap/click

是否有任何库可以在 node/edge 标签上提供编辑功能?我搜索了整个 npm 和 github,但没有找到任何有用的东西。一个接近我需要的库是 'zngduong/cytoscape.js-edit-content',但它不能正常工作。我实现了上下文菜单,我创建的选项之一是编辑元素的标签。我在元素位置上生成输入标签时遇到问题。下面是我当前使用 this 库的代码。

cy.cxtmenu({ selector: 'node, edge', commands: [ { content: '<span class="glyphicon glyphicon-pencil"></span>', select: function(ele) { var $input = '<input type="text" value="'+ ele.data('name') +'" size="20" style="z-index: 10000;"/>'; $('div#cy').append($input); } }, { content: '<span class="glyphicon glyphicon-remove"></span>', select: function(ele){ } }, { content: '<span class="glyphicon glyphicon-trash"></span>', select: function(ele){ ele.remove(); } } ] });

(1) 您不能向 Cytoscape 添加任何内容 div。

(2) 您应该将标签文本存储在元素的 data.

(3) 您应该在标签中使用 stylesheet to map 数据字段(例如 label: data(label))。

(4) 通过(3)和(4),设置node.data('label', newLabel)改变标签文本。您如何为此设计 UI 由您决定。例如,您可以在 qtip.

中显示一个文本框