如何在 jointjs 中的链接工具选项上获取事件

How to get an event on links tool-option in jointjs

我正在尝试在单击工具选项时调用函数,以便我可以更改 link 的标签名称。 我可以使用 cell:pointerdown 事件获得一个函数调用,但这给了我整个 link 的 ID,并且在 link 的任何位置单击都会调用该事件。所以具体来说,我想在点击工具选项图像(设置选项卡)时接到电话。

我正在尝试的代码是:

paper.on('cell:pointerdown', 
            function(cellView, evt, x, y) { 
     if (cellView.model.isLink()) {
         var links = graph.getLinks();
         console.log(cellView.model.id);
         for (var i = 0; i < links.length; i++){
             console.log(links[i].id);
             links[i].label(0, { attrs: { text: { text: 'my label' } } }); 
         }
        }

这工作正常,但我希望在 link 上点击工具选项图像时发生相同的事件,而不是在 link 上的任何地方。

您的问题已在此处得到解答:

基本上,你需要做这样的事情:

diagram.on('link:options', function (cellView, evt, x, y) {
    // your logic here: e.g. select a link by its options tool             
});