Я пытаюсь создать что-то вроде дизайнера пользовательского интерфейса. Поэтому у меня есть «набор инструментов» и «холст». Когда я помещаю элементы инструментария как перетаскиваемые, я могу их перетащить. Но мне нужно перетащить копию, чтобы я мог перетаскивать несколько экземпляров элемента инструмента на холст.Изменение перетаскиваемого объекта при перетаскивании начинается
$('.tool-box-item').draggable({
helper : 'clone',
drag : function (event, ui){
// jQuery does not allow object modification here
},
});
Это не работает, как клонирование применяется только во время перетаскивания, и как только сопротивление будет завершено, оригинальный элемент перемещается. Я попытался переопределить свойство drag, но я не могу изменить элемент перетаскивания. То же самое было с началом.
Примечание: Я не могу использовать событие остановки, поскольку я хочу создать копию, когда начинается перетаскивание, а не после нее. Я также смог создать копию, определив холст как droppable и сделав там копию, Но потом снова хочу создать копию, когда начинается перетаскивание.
Я думаю, мне нужно будет создать пользовательскую функцию перетаскивания, но надеялся, что если jQuery будет иметь другой альтернативный способ.
Вот jsfiddle, но я хочу клонировать элемент в начале, а не после перетаскивания.
РЕДАКТИРОВАТЬ: Пункт назначения является сторонним органом управления. Он имеет собственную реализацию для события drop (укладка и выравнивание). В случае, если я буду клонировать его в конце, мне придется изменить их реализацию.
Не могли бы вы объяснить, зачем вы клоном элемент в начале перетаскивания, но не в конце? –
@YuriGor Назначение - это сторонний элемент управления. Он имеет собственную реализацию для события drop (укладка и выравнивание). В случае, если я буду клонировать его в конце, мне придется изменить их реализацию. –
Я вижу .. Проверьте мой ответ ниже, я отредактировал его в соответствии с этим требованием, возможно, это сработает. –