3

我有一个包含许多元素和链接的 JointJs 模型。我希望将大多数链接显示为元素之间的线条,但对于某些类型的链接,我希望它们对用户不可见且不可发现。我尝试了一些让我接近的不同方法,但我想知道是否有人有更好或更完整的解决方案。

我尝试过的事情:

link.attr({'.connection': {opacity: 0.0}});

这确实使链接对用户不可见,但当用户的鼠标移到链接上时仍会显示并可编辑。

link.attr({'.connection': {display: non}});

这甚至没有将链接放在调色板上,这确实成功地向用户隐藏了它,但是有问题,因为它不再被模型跟踪。

对于更多背景信息,这些链接可以存在但不能由用户创建或使用,因此我不希望将它们呈现给用户。但是,当我查询所有链接的调色板时,我仍然希望这些链接存在。

感谢您提供的任何帮助或想法。

4

2 回答 2

2

您可以使用

this.attr("./display", "none");

(另请参阅隐藏图中的元素

于 2016-06-14T13:21:06.630 回答
1

我拥有的最佳解决方案是隐藏链接的所有元素(在文档中他们解释了这些元素)。

我做了这个功能来做到这一点:

var attrObject = {
    '.connection': {display:"none"}, //the link
    '.marker-target': {display:"none"}, 
    'text': {display:"none"}, //because I have a label
    'rect': {display:"none"}, //second element of label
    '.connection-wrap': {display:"none"},//a bigger link highliting on hover
    'g.marker-vertices': {display:"none"}, //vertice of the link
    'g.link-tools': {display: 'none'}, // the button to delete the link
    'g.marker-arrowheads': {display:"none"} //the arrow to change link targets
};
link.attr(attrObject);
于 2015-05-04T16:43:35.273 回答