Удаление элемента после jsPlumb.draggable() в функции droppable drop:

Я хочу создать область удаления, где любой удаленный элемент будет удален. Поэтому я реализовал это как droppable с drop:function(event,ui){ui.helper.remove()}. Это не работает с jsPlumb.draggable().

JSFiddle

Это отлично работает, когда я делаю элементы перетаскиваемыми с помощью пользовательского интерфейса Jquery $(...).draggable(). Следовательно, кажется, что jsPlumb.draggable($(...),{}) не использует помощника. Вызов ui.draggable.remove() удаляет гораздо больше элементов.

Я думаю, что в документации jsPlumb или StackOverflow нет ничего об этой конкретной проблеме.

Любые идеи? Теперь лучшим решением будет без лестницы elseif для проверки различных реализаций из разных плагинов, если это возможно.


person snugghash    schedule 28.01.2014    source источник


Ответы (1)


Как вы упомянули, что с перетаскиваемым jQuery все работает нормально, я бы посоветовал вам заменить перетаскиваемый jsPlumb следующим образом:

droppedEleClone.draggable({
                snap: '.dragme',
                drag:function(e){
                    jsPlumb.repaint($(this));
                }
            });

А также при клонировании убедитесь, что вы предоставляете разные идентификаторы. Элементы DOM с одинаковыми идентификаторами не дают правильного результата. Из-за клонирования одного и того же объекта трудно определить правильный и удалить его. Следовательно, предоставьте разные идентификаторы.

person MrNobody007    schedule 28.01.2014
comment
Я надеялся на что-то от jsPlumb или на то, почему это происходит в первую очередь. Ваше решение решает проблему, я соглашусь, когда пройдут 24 часа. - person snugghash; 28.01.2014
comment
@snugghash jsPlumb.draggable переопределяет jQuery.draggable, поэтому функция удаления не будет вызываться. Если вам нужно вызвать функцию .drop, вы должны расширить функцию jQuery.draggable, как указано выше, чтобы обновить соединения jsPlumb вручную. Аналогичный вопрос: stackoverflow.com/questions/20818899/ - person MrNobody007; 29.01.2014