【发布时间】:2013-03-16 18:22:28
【问题描述】:
我将 jsPlumb 用于一个中等规模的项目。尽管文档在扎实的解释方面很薄弱,但我已经设法完成了该项目,现在我已准备好交付它。
就在交货日期之前,我被要求将连接线设为笔直而不是弯曲。我认为这就像在 jsPlumb 连接方法中添加一个关键字一样简单,例如:jsPlumb.connect({ connector: 'Straight'... })... 确实如此。那么有什么问题呢?
我正在处理的这个项目必须允许用户“选择”连接线,这样他们就可以按“删除”按钮来清除他们选择的连接。我允许用户通过调用 jsPlumb 的 setPaintStyle() 方法来选择连接,如下所示:
// Select/Deselect each connection on click
jsPlumb.bind('click', function (connection, e) {
e.preventDefault();
connection.setPaintStyle({
strokeStyle: 'red'
});
});
仅当线条弯曲时(jsPlumb 默认)才能按预期工作。
但是,如果将connect() 方法中的connector 选项更改为"Straight",则垂直的连接线(它们的端点彼此交叉) 当我点击它们时就会消失。其他端点没有直接交叉的直线不存在这个问题。
删除连接器选项,或将其值设置为“bezier”,或者在选项设置为“直”时,或者不会调用setPaintStyle()方法,然后点击的行保持在适当位置。
这是一个 jsBin 示例:jsPlumb setPaintStyle() with Straight lines bug
最初我认为这是我的应用程序中的一个错误,但在花费大量时间后,我已将问题追溯到 setPaintStyle() 方法。我很有信心这是一个 jsPlumb 错误,但我并不完全确定。在这一点上非常令人沮丧,因为唯一阻止我交付项目的是将笔触颜色更改为红色的能力。如果我能用直线完成这个简单的任务,那么我可以继续前进。
我考虑过自己定位 SVG 路径节点并以这种方式更改笔触颜色,但由于 jsPlumb 将 VML 用于 IE8(ie8 是此项目的要求),我不确定我可以做到这一点。有什么建议吗?
【问题讨论】:
标签: javascript jquery canvas svg jsplumb