在 JointJs 中隐藏 Link
Hide Link in JointJs
我有一个包含许多元素和 links 的 JointJs 模型。大多数 links 我希望显示为元素之间的线,但对于某些类型的 links 我希望它们对用户不可见且不可发现。我已经尝试了一些让我接近的不同的东西,但我想知道是否有人有更好或更完整的解决方案。
我尝试过的事情:
link.attr({'.connection': {opacity: 0.0}});
这确实使 link 对用户不可见,但当用户的鼠标移到它上面时仍然显示并且可以编辑。
link.attr({'.connection': {display: non}});
这甚至没有将 link 放在调色板上,这确实成功地向用户隐藏了它,但存在问题,因为模型不再跟踪它。
关于更多背景信息,这些 link 可以存在但不能被用户创建或使用,所以我不希望将它们呈现给用户。但是,当我查询所有 link 的调色板时,我仍然希望它们存在。
感谢您提供的任何帮助或想法。
我的最佳解决方案是隐藏 link 的所有元素(在 doc 中他们解释了这些元素是什么)。
我制作了这个函数来完成它:
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);
您可以使用
this.attr("./display", "none");
(另见 Hiding elements in a diagram)
我有一个包含许多元素和 links 的 JointJs 模型。大多数 links 我希望显示为元素之间的线,但对于某些类型的 links 我希望它们对用户不可见且不可发现。我已经尝试了一些让我接近的不同的东西,但我想知道是否有人有更好或更完整的解决方案。
我尝试过的事情:
link.attr({'.connection': {opacity: 0.0}});
这确实使 link 对用户不可见,但当用户的鼠标移到它上面时仍然显示并且可以编辑。
link.attr({'.connection': {display: non}});
这甚至没有将 link 放在调色板上,这确实成功地向用户隐藏了它,但存在问题,因为模型不再跟踪它。
关于更多背景信息,这些 link 可以存在但不能被用户创建或使用,所以我不希望将它们呈现给用户。但是,当我查询所有 link 的调色板时,我仍然希望它们存在。
感谢您提供的任何帮助或想法。
我的最佳解决方案是隐藏 link 的所有元素(在 doc 中他们解释了这些元素是什么)。
我制作了这个函数来完成它:
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);
您可以使用
this.attr("./display", "none");
(另见 Hiding elements in a diagram)