虽然我正在尝试找到一种合适的方法来实现这个(这让我想到了你的问题)。但是,我有一个解决方案,可以让jsPlumb按照我想要的方式工作。
基本上,您需要添加一个零高度/宽度的div作为中间节点。然后,您将连接与该节点之间进行连接,而不是直接连接真正的项。
我已经修改了您的jsfiddle(更新的链接)以提供此示例。
需要注意的重要事项是能够使用坐标设置锚点位置和使用两种不同的端点形状。此外,在您的示例中,由于从锚点到第一个拐角的默认长度太长,因此可以通过使用stub参数来控制。
以下是相关的修改和注释。
HTML
<div id="root">
<div class="item" id="item1">Item 1</div>
<div class="item" id="item2">Item 2</div>
<div class="item" id="item3">Item 3</div>
<div class="item" id="item4">Item 4</div>
<div class="item" id="item5">Item 5</div>
<div class="item" id="item6">Item 6</div>
<div class="item" id="item7">Item 7</div>
<div class="node" id="8-12"></div>
<div class="item" id="item8">Item 8</div>
<div class="item" id="item9">Item 9</div>
<div class="item" id="item10">Item 10</div>
<div class="item" id="item11">Item 11</div>
<div class="item" id="item12">Item 12</div>
<div class="item" id="item13">Item 13</div>
<div class="item" id="item14">Item 14</div>
</div>
CSS
.node {
position: absolute;
height: 0px;
width: 0px;
visibility: hidden;
left: 285px;
top: 160px;
}
JS
jsPlumb.connect({
source: $('#item8'),
target: $('#8-12'),
connector:[ "Flowchart", {stub:5} ],
paintStyle: {
strokeStyle: "#000000",
lineWidth:1
},
anchors:[ [0,0.5,-1,0],[0.5,0,0,-1] ],
endpoints:[ ["Dot", {radius:2}],["Blank"] ]
});
jsPlumb.connect({
source: $('#8-12'),
target: $('#item12'),
connector:[ "Flowchart", {stub:5} ],
paintStyle: {
strokeStyle: "#000000",
lineWidth:1
},
anchors:[ [0,0.5,-1,0],[0.5,0,0,-1] ],
endpoints:[ ["Blank"],["Dot", {radius:2}] ]
});