Я пытаюсь перетащить «шаблоны» (изначально как клоны) из «магазина» в выпадающие слоты.После этого я хочу иметь возможность бросить перетаскиваемый предмет в любой желаемый слот.Draggables устанавливаются следующим образом:
$( ".template" ).draggable({
helper: "clone",
}
);
$( ".item" ).draggable();
Я решил проблему повторного клонирования, заменив класс «template» классом «item» при первом отбрасывании и переключении функции отбрасывания изклонировать прямой элемент следующим образом:
$( ".template-slot" ).droppable({
accept: ".template, .item",
drop: function( event, ui ) {
if(ui.draggable.hasClass("template")) {
$(this).append(ui.draggable.clone())
// add item class
$(".template-slot .template").addClass("item");
// remove template class
$(".item").removeClass("ui-draggable template");
// expand to fit the slot
$(".item").addClass("expand-to-slot");
// make it draggable again
$(".item").draggable();
}
if(ui.draggable.hasClass("item")) {
$(this).append(ui.draggable);
}
}
});
Первое перетаскивание работает нормально.проблема возникает при втором перетаскивании.Элемент перетаскивается хорошо, но когда его уронили, он помещается вдвое дальше, куда бы я его ни перетаскивал.Так, например, если я перетащил его на 50 пикселей вправо, он опустится на 100 пикселей вправо.то же самое с вверх и вниз и т. д.
Я подозреваю, что это как-то связано с тем, что смещение является кумулятивным, но я не выяснил, почему он это делает или как это исправить.
У меня естьздесь создали скрипку: https://jsfiddle.net/stefem1969/a86jmnxu/10/, чтобы показать проблему.
Надеюсь, что кто-то может помочь.