2012-07-14 12 views

risposta

6

Ho trovato la soluzione nella documentazione (http://jsplumb.org/doc/usage.html)

jsPlumb.detachAllConnections("elementId"); 
11

Se hai più connessioni da o verso elementi, staccando tutti i collegamenti non è forse la migliore soluzione per eliminare una connessione. C'è una funzione (non ben documentato) per staccare esattamente un collegamento:

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

Nel mio esempio, voglio eliminare una connessione quando il connettore viene cliccato:

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

Questo codice rimuove tutto " "errate" connessioni in un gioco che sto sviluppando. Spero che aiuta

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

Hi è possibile fare riferimento a questo: Detach connection jsPlumb

Questo blocco di codice consente di staccare il collegamento se una connessione è stato cliccato:

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

Se la sorgente div o ID div di destinazione è già noto, quindi è possibile eliminare la connessione in questo modo:

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

È inoltre possibile utilizzare jsPlumb.getAllConnections() per ottenere l'array di tutte le connessioni e testare ogni id di sourceId o targetId della connessione per ottenere esattamente la connessione necessaria;

2

Dopo tutte le connessioni endpoint, da e per l'elemento vengono eliminate, è necessario staccarlo come mostrato nella terza linea di

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

lavorato per me. Ma ho usato un'istanza di jsPlumb invece di chiamarla direttamente: 'g_instance = jsPlumb.getInstance (...., Contenitore:" flowchart-demo ")' e quindi: 'g_instance.detachAllConnections (divID);' – matt

+0

Il distacco delle connessioni lascia tutti gli Endpoint in posizione senza disorientare il resto del grafico considerando la sua relatività. Quindi, finché viene eseguito, il modo in cui vengono prese le istanze non influisce sul resto del codice. –

0
jsPlumb.deleteConnectionsForElement(elementId) 

opere. Anche se è vecchio vorrei aggiungere che scoprire quali metodi ha una libreria, a patto che sia abbastanza descrittivo è abbastanza facile.

dev tools

2

Per qualche ragione, staccare non funzionano. Neanche dichiarato nella loro biblioteca. Penso che abbiano dimenticato di correggere i loro documenti. Per eliminare una connessione utilizzare il seguente codice:

jsPlumb.deleteConnection(con) 
Problemi correlati