2015-12-17 25 views
7

Dostaję moje wystąpienie tak:nie można używać jsplumb z drugiej funkcji

jsp = jsPlumb.getInstance(); 
jsp.setContainer(_domnodeId); 
jsp.ready(function(){ 

//doing some stuff - connecting boxes with arrows... 

    var conn2 = jsp.connect({ 
       source:  boxSST_IPMRS_COBRAIP.boxId, 
       target:  boxCOBRA_IM.boxId 
      }); 
    } 

wynik:

enter image description here

w innej funkcji robię to samo:

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

Strzałki przesuwają się w lewy górny róg ... var jsp jest globalny i wyczyściłem _domnodeId na początku mojej drugiej funkcji. Jakieś sugestie?

wyczyszczenie mojego domnodeID:

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

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

Zastanawiasz się, co się stanie, jeśli usuniesz 'faces: [" bottom "," right "]' from anchor? Jeszcze tego nie przetestowałem i jest to zwykłe założenie od kogoś, kto nigdy wcześniej nie używał jsplumb. – choz

+1

Czy możesz zamieścić nieco więcej kodu lub jeszcze lepiej utworzyć [jsbin] (https://jsbin.com/?html,output) lub [jsfiddle] (https://jsfiddle.net/t)? – cviejo

Odpowiedz

1

I wyczyszczone _domnodeId na początku mojej drugiej funkcji

Jak zrobisz? Wydaje mi się, że nie wyczyściłeś go prawidłowo.

Czy przeczytałeś rozdział "Removing" instrukcji?

Jeśli skonfigurowano element DOM z jsPlumb w dowolny sposób powinien używać jsPlumb aby usunąć element z DOM (w przeciwieństwie do pomocą czegoś podobnego funkcji remove jQuery, na przykład).

Proszę przeczytać dokładnie. Możesz potrzebować albo jsPlumb.empty, deleteEveryEndpoint lub reset.

+0

Próbowałem: jsPlumb.detachEveryConnection(); \t jsPlumb.deleteEveryEndpoint(); \t jsPlumb.reset(); \t jsPlumb.empty(); \t jsPlumb.empty(); ... wszystko bez skutku – h0ppel

+0

W kodzie dodanym do pytania usuwanego przez 'remove' jQuery, co jest błędne. Wyraźnie stwierdzono, że nie należy usuwać elementów jsPlumb w ten sposób. Czy próbowałeś tych funkcji * zamiast * z 'remove' jQuery? Powinno to pomóc lub usunąć poszczególne elementy poprzez 'jsPlumb.remove (" element1 ");', jak wspomniano w instrukcji. – user

+0

Czy uruchomiłeś te funkcje w instancji jsPlumb, 'jsp'? A 'empty' wymaga argumentu, który w twoim przypadku byłby podobny do' jsp.empty (container); ' – user

Powiązane problemy