如何删除jsPlumb连接

时间:2012-07-14 23:07:11

标签: javascript jsplumb

我正在玩jsplumb,但我无法删除只有id为一个div的两个div之间的连接。

11 个答案:

答案 0 :(得分:10)

如果您有多个来自或来自元素的连接,则分离所有连接可能不是删除连接的最佳解决方案。有一个(没有很好的文档记录)函数来分离一个连接:

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);
 });

答案 1 :(得分:7)

我在文档中找到了解决方案(http://jsplumb.org/doc/usage.html)

jsPlumb.detachAllConnections("elementId");

答案 2 :(得分:6)

要删除连接,请使用以下代码:

jsPlumb.deleteConnection(con)

出于某种原因,分离对我不起作用。他们的文档中没有提到上述方法,可能他们忘了更正他们的文档。

答案 3 :(得分:2)

如果已知源div或目标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以获得您需要的完全连接;

答案 4 :(得分:2)

在删除了与元素之间的所有端点连接后,您需要将其分离,如第3行所示

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

答案 5 :(得分: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);
    }
  }
});

答案 6 :(得分:0)

您好,您可以参考: Detach connection jsPlumb

如果单击了连接,则此代码块允许分离连接:

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

答案 7 :(得分:0)

jsPlumb.deleteConnectionsForElement(elementId)

的工作原理。虽然它已经很久了,但我想补充一点,找出图书馆有哪些方法,只要它具有足够的自我描述性就足够了。

dev tools

答案 8 :(得分:0)

我想更新答案。对于2.5版,如果您使用

jsPlumb.detach()

您可能会收到以下错误消息:jsPlumb.detach()不是函数。我也试试

jsPlumb.deleteConnection(conn)

确实删除了连接,但是,我不确定为什么端点只是从div中分离出来。最后,它由

解决
instance.deleteConnection(conn)

答案 9 :(得分:0)

事实上,您可以使用sourceId和targetId

找到您的连接
var connections = jsPlumb.getConnections({
            source: sourceId ,
            target:targetId  
        });

这将返回一个jsPlumb连接数组,因此您可以删除与此源和目标ID相关的所有连接。

for(var i=0;i < connections.length;i++) {
            jsPlumb.deleteConnection(connections[i]);
        }

答案 10 :(得分:0)

删除连接对我有用

jsPlumb.bind("click", function(conn) {
    // alert(JSON.stringify(data));
    jsPlumb.deleteConnection(conn);
 });