2016-08-23 4 views
1

JSFiddle, несомненно, позволит вам понять проблему.jsPlumb draggable element javascript function

Я хочу, чтобы конечные точки были привязаны к элементам внутри каждого контейнера, которые перетаскиваются, но только конечные точки, нарисованные первыми, являются правильными. Во второй раз, когда вызывается функция рисования, позиции неверны, а перетаскивание не синхронизируется.

У меня есть предположение, что проблема заключается в позиции CSS, но я не могу ее найти.

jsPlumb.ready(function() { 
    $(".scroll-box").draggable({ 
    drag: function() { 
     jsPlumb.repaintEverything(); 
     //jsPlumb.repaint($(this)); 

    } 
    }); 
    //   jsPlumb.draggable($(".scroll-box")); 


    drawEndPoints("in-leaf", "Right"); 
    drawEndPoints("out-leaf", "Left"); 



}); 

function drawEndPoints(classname, endpointposition) { 

    var endpointOptions = { 
    isSource: true, 
    isTarget: true, 
    endpoint: ["Dot", { 
     radius: 10 
    }], 
    style: { 
     fillStyle: 'blue' 

    }, 
    maxConnections: -1, 
    connector: "Straight", 
    connectorStyle: { 
     lineWidth: 2, 
     strokeStyle: 'black' 
    }, 
    scope: "blackline", 
    dropOptions: { 
     drop: function(e, ui) { 
     alert('drop!'); 
     } 
    } 
    }; 

    jsPlumb.addEndpoint($("." + classname), { 
    anchor: endpointposition 
    }, endpointOptions); 
    //jsPlumb.repaintEverything(); 
} 

ответ

3

Вы пропускаете jsPlumb.setContainer($("body"));

https://jsfiddle.net/mkaran/mLthybzo/

https://jsplumbtoolkit.com/community/doc/home

EDIT: скрипку с вашим примером https://jsfiddle.net/mkaran/aof6mq34/

+0

Saved день! Я новичок в jsPlumb. Есть ли еще какие-то важные аспекты, которые мне не хватает? @mkaran – SachiDangalla

+0

Рад, что я помог :). Хмммм, я не могу вспомнить ничего, что сейчас требует внимания, взгляните на [базовую настройку] (https://jsplumbtoolkit.com/community/doc/home#setup), и также было бы неплохо установить изменение размера окна -> jsPlumb.repaint(), чтобы jsplumb хорошо реагировал на изменения окна. Меньше, но не последний. Если у вас много соединителей, используйте «jsPlumb.setSuspendDrawing (true);». Удачи! :) – mkaran