Jquery:Draw 拖动时动态设置 Svg 线

Jquery:Draw Svg Line Dynamically While Dragging

我需要将单元格从一个 table 拖放到另一个 table,我正在使用它为 SQL table[动态开发外键映射=15=]

其中 table 也可以在 window 内拖动,两个 table 之间的映射和绘图线工作完美

但是当我将 table 彼此靠近并且当我在 table 的交点之后进一步移动 table 时,线不会在 table 之间绘制tables,我知道问题出在哪里,但我无法弄清楚,如何在 tables 之间画线,而 intersection

所以这个问题有点像从左到右而不是从右到左画的线,它被当作交点

Example: http://jsfiddle.net/mohamedmusthafac/2ecsjomz/embedded/result/

这是最简单的例子 fiddle

Example : http://jsfiddle.net/mohamedmusthafac/2ecsjomz/4/

如果将左拖动框拖过右拖动框,则不会绘制线条

这只是一个演示,您可以将主键从 table 1 拖放到 Table 2 中,效果很好,但与反向相同,不会从 [=39 绘制线条=] 2 到 table 1 并且如果您拖动 table 与 table 2 相交,则线条不会绘制

为了更好的理解:

画的很完美

但是当我们将 table 靠近另一条 table 线时,它并没有画出来

问题最后调试起来很简单。您的问题从这里开始:

svgleft = Math.round(el1pos.left + el1W);
svgwidth = Math.round(el2pos.left - svgleft);

一旦方框开始重叠,svgwidth 就变成负数。具有负宽度的 SVG 是错误的,SVG 将不会被渲染。

您要么必须防止框重叠,要么更改代码以允许 'right' 位于 'left' 的左侧。