2012-07-14 30 views

Odpowiedz

6

znalazłem rozwiązanie w dokumentacji (http://jsplumb.org/doc/usage.html)

jsPlumb.detachAllConnections("elementId"); 
11

Jeśli masz wiele połączeń z lub do elementów, odłączając wszystkie połączenia nie może najlepsze rozwiązanie, aby usunąć połączenie. Jest tam (nie jest dobrze udokumentowane) funkcja odłączyć dokładnie jedno połączenie:

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

W moim przykładzie chcę usunąć połączenia, gdy złącze kliknięciu:

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

Ten kod usuwa wszystkie " złe "połączenia w grze, którą rozwijam. Mam nadzieję, że to pomaga

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 można odnieść do tego: Detach connection jsPlumb

Ten fragment kodu pozwala odłączyć połączenia, jeśli połączenie zostało kliknięte:

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

Jeśli źródło div lub docelowy identyfikator div jest już znany, możesz usunąć połączenie w następujący sposób:

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

Możesz również użyć jsPlumb.getAllConnections(), aby uzyskać tablicę wszystkich połączeń i przetestować każdy identyfikator źródła lub celI każdego połączenia, aby uzyskać dokładnie to, czego potrzebujesz;

2

Po wszystkich punktów końcowych połączenia do iz elementu zostaną usunięte, trzeba go odłączyć, jak pokazano w 3 linii

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

Pracowałem dla mnie. Ale użyłem instancji jsPlumb zamiast nazywając ją wprost: 'g_instance = jsPlumb.getInstance (...., kontener "flowchart-demo")' a następnie: 'g_instance.detachAllConnections (divId);' – matt

+0

Odłączenie połączeń pozostawia wszystkie punkty końcowe w miejscu bez dezorientowania reszty wykresu, biorąc pod uwagę jego względność. Tak długo, jak jest wykonywany, sposób, w jaki są pobierane instancje, tak naprawdę nie wpłynie na resztę kodu. –

0
jsPlumb.deleteConnectionsForElement(elementId) 

robót. Choć jest stary, chciałbym dodać, że ustalenie, jakie metody ma biblioteka, pod warunkiem, że jest wystarczająco czytelne, jest dość łatwe.

dev tools

2

Z jakiegoś powodu, odczepić nie działają. Nawet nie zgłoszono ich w bibliotece. Myślę, że zapomnieli poprawić swoje dokumenty. Aby usunąć połączenie, użyj następującego kodu:

jsPlumb.deleteConnection(con)