2015-12-17 5 views
7

Ich erhalte meine Instanz wie folgt verwenden jsplumbkann nicht mit der zweiten Funktion

jsp = jsPlumb.getInstance(); 
jsp.setContainer(_domnodeId); 

    jsp.ready(function(){ 
     //var dynamicAnchor = [ [ 0.2,1,0.5 ], [ 0.2, 1, 0.5 ], "Top", "Bottom" ]; 
     var common = { 
        anchor:[ "Continuous", { faces:["bottom","right"] }], 
      endpoint: "Blank", 
      connector:[ "Bezier", { curviness:50 }, common ], 
      overlays: [ 
          ["Arrow", {location:1, width:10, length:10}], 
         ] 
      }; 

     jsp.connect({ 
      source: boxes.b1.boxId, 
      target: boxes.b2.boxId 
     }, common); 
} 

enter image description here

Die Pfeile bewegen sich alle nach links, obere Ecke ... var jsp ist global und ich habe _domnodeId zu Beginn meiner zweiten Funktion gelöscht. Irgendwelche Vorschläge?

Clearing meine domnodeID:

function clean(container){ 
    //remove everything 
    $("#" + container) 
      .children() 
      .not('nav') 
      .remove(); 

    // box id counter 
    window.EvmClasses.chartBox.boxId = 0; 
} 
+0

Ich frage mich nur, was passiert, wenn Sie 'faces: [" bottom "," right "]' vom Anker entfernen? Ich habe das noch nicht getestet und es ist nur eine einfache Annahme von jemandem, der jsplumb nie zuvor benutzt hat. – choz

+1

Kannst du etwas mehr Code posten, oder besser noch einen [jsbin] (https://jsbin.com/?html,output) oder [jsfiddle] (https://jsfiddle.net/t) dafür erstellen? – cviejo

Antwort

1

I _domnodeId zu Beginn meiner zweiten Funktion gelöscht

Wie Sie das getan haben? Es scheint mir, dass Sie es nicht richtig gemacht haben.

Haben Sie den Abschnitt "Removing" im Handbuch gelesen?

Wenn Sie ein DOM-Element mit jsPlumb in irgendeiner Weise konfiguriert haben Sie sollten jsPlumb verwenden Sie das Element aus dem DOM zu entfernen (im Gegensatz zu so etwas wie jQuery entfernen Funktion, zum Beispiel).

Bitte lesen Sie es gründlich durch. Möglicherweise benötigen Sie entweder jsPlumb.empty, deleteEveryEndpoint oder reset.

+0

Ich habe versucht: jsPlumb.detachEveryConnection(); \t jsPlumb.deleteEveryEndpoint(); \t jsPlumb.reset(); \t jsPlumb.empty(); \t jsPlumb.empty(); ... alle ohne Wirkung – h0ppel

+0

In dem Code, den Sie der Frage hinzugefügt haben, entfernen Sie über jQuery '' remove' ', was falsch ist. Es wird klar gesagt, dass Sie jsPlumb-Elemente nicht auf diese Weise entfernen sollten. Hast du diese Funktionen * anstelle * von jQuerys 'remove' ausprobiert? Entweder sollte das helfen oder einzelne Elemente über 'jsPlumb.remove (" element1 ");' entfernen, wie im Handbuch erwähnt. – user

+0

Haben Sie diese Funktionen auf der jsPlumb-Instanz 'jsp' ausgeführt? Und 'empty' erfordert ein Argument, in Ihrem Fall wäre das wie' jsp.empty (container); ' – user