Конечные точки на вложенном перетаскиваемом дрожании при перетаскивании

Взгляните на эту скрипку. Нажмите «Новый контейнер», перетащите контейнер вниз и вправо, затем нажмите кнопку + внутри контейнера. Теперь перетащите новый элемент вокруг. Конечные точки, прикрепленные к нему, не могут решить, должны ли они быть расположены относительно контейнера или относительно документа, поэтому они колеблются между ними. И это при вызове jsPlumb.repaintEverything во время функции drag(); если вы опустите это, конечные точки останутся в неправильном месте, а не будут дрожать.

Я подумал, что, возможно, проблема в том, что контейнеры ожидаются с position: relative, а перетаскиваемые элементы ожидаются иметь position: absolute. Поэтому я попытался поместить внутренние перетаскиваемые элементы в <div> с position: relative внутри перетаскиваемого контейнера; это не помогло.

Моя проблема выглядит похожей на ту, что упоминается в этой проблеме GitHub, но ошибка якобы исправлена. Другая проблема упоминает, что jQuery ненадежен для перетаскивания, и вместо этого мы должны использовать vanilla jsPlumb; Я могу перестроить это без jQuery, если мне это абсолютно необходимо, но это значительно усложнит некоторые планы на будущее для этого проекта.

Как сделать позиционирование конечной точки плавным и надежным для вложенных перетаскиваемых элементов?


person DawnPaladin    schedule 15.02.2015    source источник
comment
Переписал это без jQuery; не имело значения.   -  person DawnPaladin    schedule 29.03.2015


Ответы (1)


Вы можете использовать разные экземпляры: jsPlumb.getInstance(). Пожалуйста, поиграйте с примером JSFiddle. Основные проблемы, которые необходимо решить в этом примере:

  1. Это необходимо для предотвращения соединений между элементами из разных экземпляров.
  2. Необходимо включить обработчик события изменения размера.
person alemv    schedule 13.03.2015
comment
Спасибо за ответ. Размещение ячеек в отдельных экземплярах — это одно из решений, которое я рассматривал, но я хотел бы иметь возможность соединять ячейки в разных контейнерах вместе. :-/ - person DawnPaladin; 13.03.2015