几个jsPlumb问题

问题描述:

我最近开始使用jsPlumb为客户端创建一个UI,但我遇到了两个我似乎无法解决的问题。几个jsPlumb问题

的jsfiddle这里:http://jsfiddle.net/ugxopksz/

首先是我的终点,而不是被重新绘制连接时,我调整窗口的大小。这个网站正在进行一些响应式设计。我试着做了整个

$(window).resize(function(){ 
    jsPlumb.repaintEverything(); 
}); 

但是那不废话。我没有从它那里得到一个错误,但它根本没有做任何事情。

我的第二个问题是我找不到一个连接指定多个源。喜欢的东西:

instance.connect({ 
     source:"oneT", 
     target:"center", 
     anchor:[[1, 0.5, 0, 0, 0, 80], [0, 0.5, 0, 0, 7, -40]] 
}); 

除非我可以声明一些阵列并创建一个循环,这将使代码块数组中的每个元素。我正在寻找的原因是这个UI从数据库中提取并创建每个外部元素,因为他们可以改变我希望它能够处理,如果发生数据库更改我不必进入并手动添加新元素。

任何帮助将不胜感激。

对于第一个问题:

利用列表元素(LI标签)是不优选的,用于连接。相反,你可以制作div元素并尝试。由于li标签没有合适的位置,Windows的调整大小也无法重新绘制。从Doc's很清楚,具有绝对位置的元素在所有条件下都将表现正常。

查看此FIDDLE用于连接DIV元素以及调整窗口大小的重新绘制选项。

对于第二个问题:

现在jsPlumb不支持多个ID的源参数,所以你必须要比循环他们没有其他选择,在一个数组:

var trg = 'center'; 
var src = ['oneT','twoT','threeT'];  

for(var i=0;i<src.length;i++) 
{ 
    jsPlumb.connect({ 
       source: src[i], 
       target: trg, 
       connector: [ "Flowchart", {cornerRadius:1} ], 
       paintStyle:{ lineWidth:5, strokeStyle:'#3E2522' }, 
       anchors: [[1.02, 0.5, 0, 1], 
        [-0.02, 0.5, 0, 0]], 
       endpointStyle: { radius:0.5 } 
    }) 
} 
+0

谢谢你的答复。我会看到divs如何工作,保持这个内容将被添加和删除的想法。我猜想这会比对jsPlumb的工作更好。 – Shaazaam 2014-09-26 15:55:12

+0

我终于有时间充分实施您的建议。一切都很好,但它仍然不会重新绘制。我已经变成了divs,并给了他们所有的绝对职位。会用百分比来摆布他们吗? – Shaazaam 2014-09-29 13:26:51

+0

更新jsfiddle链接。 – MrNobody 2014-09-30 02:25:24

既然你已经使用独立的jsPlumb实例创建了连接,您必须使用同一个实例重新绘制jsPlumb组件。 以下行

jsPlumb.repaintEverything(); 

更改为

instance.repaintEverything(); 

Click here for updated jsFiddle link