2014-06-17 3 views
5

Ich verwende jsPlumb. Ich habe .project Behälter, die .task divs halten. Diese .task divs sind Quellen/Ziele für jSPlumb-Verbindungen. Die .project Container sind ziehbar.jsPlumb Endpunkte nicht aktualisiert, wenn div bewegt wird, ohne gezogen zu werden

http://jsfiddle.net/8Af7s/

Die .task div der Quelle zugeordnet ist/Eigenschaft Ziel, wenn es erstellt wird (mit jQuery erstellt):

// Makes the task div a possible target (i.e. connection can be dragged to) 
jsPlumb.makeTarget(newState, { 
    anchor:["Continuous", { faces:["left", "right"] } ] 
}); 

// Makes the task div a possible source (i.e. connection can be dragged from) 
jsPlumb.makeSource(newState, { 
    anchor:["Continuous", { faces:["left", "right"] } ] 
}); 

Wo die .task die newState

ist
var newState = $('<div>').attr('id', id).addClass('task') 

nun eine Aufgabe, die ich habe eine statische Taste zu löschen, die nur alle Verbindungen zu dieser Aufgabe löst und entfernt sie:

$('#removetask1').click(function(e) { 
    jsPlumb.detachAllConnections($('#task1')); 
    $('#task1').remove(); 
    //jsPlumb.repaintEverything(); 
}) 

Das Problem tritt auf, wenn andere task s Verschiebung nach oben, wenn die gelöscht task div war an der Spitze der project

Auch die Zeile hinzufügen (dh Auskommentierung):

jsPlumb.repaintEverything(); 

Zum Ende des Entfernen Funktionsaufruf das Problem behebt, aber das Problem weiterhin besteht nach wie vor wenn das .project div gezogen wird.


Vor task1 gestrichen:

enter image description here

Nach task1task2 verschiebt sich nach oben gelöscht und nimmt seinen Platz, aber die Verbindung übernimmt noch task2 an der Unterseite ist:

enter image description here

+1

Gehen durch die Geige Link dieser SO Link, können Sie eine Vorstellung bekommen: http: // Stackoverflow.com/questions/23882199/jsplumb-source-endpoint-does-not-move-wenn-source-container-ist-gezogen – MrNobody

+0

Danke, ich bin auf diesen Link gestoßen, obwohl mit diesem jQuery.draggable es in meinem Fall unerwartet funktioniert (manchmal funktioniert es, viele andere Male hält es andere Elemente davon ab, zu reagieren). –

+1

das ist traurig, was ist passiert, um dieses Problem zu lösen? –

Antwort

0

Abnehmen aller Co Bevor Sie ein Element löschen und dann die restlichen Verbindungen neu zeichnen, können Sie hilfreich sein. Vergessen Sie nicht, Verbindungen Daten auf einer Seite zu speichern (ohne diejenigen, die mit dem Element entfernt werden müssen), dann laufen

jsPlumb.detachEveryConnection(); 

das Element entfernen und dann jsPlumb.connect ({...}) für jede Verbindung, die du vorher gespeichert hast.

Aktualisiert jsfiddle: http://jsfiddle.net/kvtbffrj/