12

jsplumbで遊んでいますが、1つのdivのIDしかない2つのdiv間の接続を削除できません。

4

11 に答える 11

8

更新: jsPlumb はメソッドを実装しなくなりましたdetach。より最新のソリューションについては、以下の Rafik Bari の回答を参照してください。

要素との間で複数の接続がある場合、すべての接続を切り離すことは、接続を削除するための最良の解決策ではない可能性があります。正確に 1 つの接続を切断する (十分に文書化されていない) 関数があります。

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);
 });
于 2012-12-13T10:31:38.113 に答える
7

ドキュメント(http://jsplumb.org/doc/usage.html)で解決策を見つけました

jsPlumb.detachAllConnections("elementId");
于 2012-07-15T17:58:40.887 に答える
4

ソース 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 をテストして、必要な接続を正確に取得することもできます。

于 2014-04-03T05:57:25.097 に答える
2

要素との間のすべてのエンドポイント接続が削除されたら、3 行目に示すように要素を切り離す必要があります。

jsPlumb.detachAllConnections(divID);
jsPlumb.removeAllEndpoints(divID);
jsPlumb.detach(divID); 
divID.remove()
于 2016-05-30T04:53:44.627 に答える
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);
    }
  }
});
于 2013-03-15T16:56:26.717 に答える
0

こんにちは、これを参照できます: Detach connection jsPlumb

このコード ブロックにより、接続がクリックされた場合に接続を切断できます。

jsPlumb.bind("click", function(conn) {
    jsPlumb.detach(conn);
});
于 2013-09-17T09:30:10.607 に答える
0

接続を削除するとうまくいきました

jsPlumb.bind("click", function(conn) {
    // alert(JSON.stringify(data));
    jsPlumb.deleteConnection(conn);
 });
于 2018-08-03T08:10:48.873 に答える