jsPlumb функция javascript для перетаскивания элемента

JSFiddle поможет вам понять проблему.

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

У меня есть предположение, что проблема связана с позицией 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();
}

person S.Dan    schedule 23.08.2016    source источник


Ответы (1)


Вам не хватает jsPlumb.setContainer($("body"));

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

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

РЕДАКТИРОВАТЬ: скрипка с вашим примером https://jsfiddle.net/mkaran/aof6mq34/

person mkaran    schedule 23.08.2016
comment
Спас день! Я новичок в jsPlumb. Есть ли какие-то другие важные аспекты, которые я упускаю? @мкаран - person S.Dan; 23.08.2016
comment
Рад, что помог :). Хм, я не могу сейчас вспомнить ничего, что требует внимания, взгляните на базовые настройки а также было бы неплохо установить событие on resize --› jsPlumb.repaint(), чтобы jsplumb хорошо реагировал на изменения окна. Не в последнюю очередь. Если у вас много соединителей, воспользуйтесь преимуществами jsPlumb.setSuspendDrawing(true);. Удачи! :) - person mkaran; 23.08.2016