2012-07-14 636 views

回答

6

我找到的文檔(http://jsplumb.org/doc/usage.html)在溶液

jsPlumb.detachAllConnections("elementId"); 
11

如果您已經從或元素的多個連接,拆卸所有連接是也許不是刪除連接的最佳解決方案。有一個(無據可查)函數來分離只有一個連接:

jsPlumb.detach(connection, { 
    fireEvent: false, //fire a connection detached event? 
    forceDetach: false //override any beforeDetach listeners 
}) 

在我的例子,我想刪除的連接,單擊該連接器時:

jsPlumb.bind('click', function (connection, e) { 
    jsPlumb.detach(connection); 
}); 
0

此代碼刪除所有「錯誤的「連接在我正在開發的遊戲中。 我希望它能幫助

var wrong_connections = new Array(DB_ID, ANOTHER_DB_ID); 
var connections = jsPlumb.getConnections(); 
$.each(connections, function(index, value) { // going through all connections 
    var source_id = value.source.attr('id').substring(28); // I need the ID from DB so I`m getting it from the source element 
    for (var a = 0; a < wrong_connections.length; a++) { 
    if (source_id == wrong_connections[a]) { 
     jsPlumb.detach(value); 
    } 
    } 
}); 
0

嗨,你可以參考這個: Detach connection jsPlumb

的代碼塊允許,如果被點擊一個連接到分離連接:

jsPlumb.bind("click", function(conn) { 
    jsPlumb.detach(conn); 
}); 
2

如果源格或目標div id是已知的,那麼你可以像這樣刪除連接:

var conn = jsPlumb.getConnections({ 
       //only one of source and target is needed, better if both setted 
       source: sourceId, 
       target: targetId 
      }); 
if (conn[0]) { 
    jsPlumb.detach(conn[0]); 
} 

您還可以使用jsPlumb.getAllConnections()獲取所有連接的數組,並測試每個連接的sourceId或targetId以獲取您所需的連接;

2

所有端點連接,並從該元件被刪除後,您需要將其卸下,如圖3號線

jsPlumb.detachAllConnections(divID); 
jsPlumb.removeAllEndpoints(divID); 
jsPlumb.detach(divID); 
divID.remove() 
+0

爲我工作。但我使用了jsPlumb的一個實例,而不是直接調用它: 'g_instance = jsPlumb.getInstance(....,Container:「flowchart-demo」)' 然後: 'g_instance.detachAllConnections(divID);' – matt 2016-07-25 12:21:04

+0

通過分離連接,所有端點都可以在不影響圖的其餘部分的情況下考慮其相關性。所以只要它被執行,實例的採取方式並不會影響其他代碼。 – 2016-07-26 04:13:58

0
jsPlumb.deleteConnectionsForElement(elementId) 

作品。雖然它很老,但我想補充一點,找出一個圖書館有什麼方法,只要它足夠自我描述就很容易。

dev tools

2

出於某種原因,分離不工作。甚至沒有在他們的圖書館宣佈。我認爲他們忘了糾正他們的文檔。要刪除連接,請使用以下代碼:

jsPlumb.deleteConnection(con)