2013-08-20 120 views
2

我想通過編程方式建立幾個連接。問題是當連接被繪製時,新的端點被創建並且現有的端點不再可點擊。我確實有可拖動行爲的端點。我無法獲得(由連接創建的)端點與原始端點具有相同的屬性。jsplumb連接不工作

我做了工作的jsfiddle:http://jsfiddle.net/SCSaf/4/

下面的代碼中的容器進行初始化和連接繪製

jsPlumb.connect({source: "container1", target: "container2"}, common); 

在共同VAR我試圖源的特性相結合-endpoints(exampleGreyEndpointOptions)與end-endpoints(endpointOptions) 通常我有paintStyle使行/ arraw與可拖動行相同。錨定的目的是防止容器或方形連接之間的連接。正如您所看到的,這將用於非常分層的數據模型。

我試圖通過增加更多的端點選項(取消註釋測試)來設置新的端點行爲,但是,讓合併錯誤的somekind的在jsPlumb

var common = { 
anchors: ["BottomCenter", "TopCenter"], 
//endpoints: [{ 
// isSource: true, 
// isTarget: false, 
//}, { 
// isSource: false, 
// isTarget: true, 
//}], 
endpointStyles: [exampleGreyEndpointOptions, endpointOptions], 
paintStyle: {strokeStyle: color} 
}; 

我的想法,並沒有任何線索如何解決錯誤。我想要的行爲是,它也可能得出/拖動新的連接(或刪除現有的)從端點與連接畫出編程

API參考:http://jsplumbtoolkit.com/apidocs/Connection.html

文檔:http://jsplumbtoolkit.com/doc/connections#programmatic

回答

1

爲了留住您需要通過端點而不是其ID來連接容器的端點選項。我已經根據他們的容器給出了終端uuid並將它們連接起來。例如container0的端點是uuid container0sr(source)和container0tr(target)。

我已經修改了你的jsFiddle

修改是:

$('.stepnode').each(function(){ 
    InitContainer($(this)); 
}); 

給予UUID每個容器的端點:

uuid:el.attr("id")+"sr" //for source endpoint options 
uuid:el.attr("id")+"tr" //for target endpoint options 
jsPlumb.connect({uuids:["container1sr","container2tr"]}); //for connecting based on endpoint uuid