Я пытаюсь использовать jquery draggable и droppable.jQuery: Множество перетаскиваемых и перетаскиваемых объектов?
У меня есть несколько draggables и несколько droppables на моей странице.
Drga and drop работает нормально, но проблема в том, что когда я перетаскиваю div на 1 droppable, он также будет клонирован в других droppables на моей странице ... также, когда я перемещаю draggables внутри droppables, они снова умножаются.
Чтобы объяснить эту проблему, я создал этот FIDDLE
и это весь мой код:
(function ($) {
$.fn.liveDraggable = function (opts) {
this.live("mouseover", function() {
if (!$(this).data("init")) {
$(this).data("init", true).draggable(opts);
}
});
return this;
};
}(jQuery));
$('.drag').liveDraggable({
helper: 'clone',
cursor: 'move'
});
var x = null;
$(".droppable").droppable({
drop: function(e, ui) {
var parent = $(".droppable");
var x = ui.helper.clone();
var img = $(x)
var leftAdj = (ui.position.left - parent.offset().left);
var topAdj = (ui.position.top - parent.offset().top);
if (x.hasClass("outside")) {
x.css({
left: leftAdj,
top: topAdj
});
x.removeClass("outside");
}
x.draggable({
helper: 'original'
});
x.find('.ui-resizable-handle').remove();
x.resizable();
x.appendTo('.droppable');
ui.helper.remove();
}
});
Перетащите красную диву на черных дивы, и вы должны увидеть эту проблему.
Не могли бы вы прокомментировать эту проблему?
Любая помощь будет оценена по достоинству.
EDIT:
Приблизиться, но до сих пор не совсем там: https://jsfiddle.net/qkhunz8k/2/
'Всех ваших droppables имеет класс Droppable. .. да, конечно, они есть. это класс! и извините, но ваша скрипка все еще не то, что я пытаюсь сделать. в вашей скрипке, как только перетаскивание перетаскивается один раз, оно станет неперетаскиваемым. – rooz
Хорошо, идея состоит в том, что когда вы это делаете: '$ ('. Droppable')', который представляет ВСЕ элементы, у которых есть класс. Поэтому, если вы присоединитесь к этому jQuery, он будет добавляться ко всем.Вот почему вы должны присоединяться к элементу '$ (this)'. Вы заявили, что этот элемент добавляется к нескольким целям при его удалении. Вот почему это происходит. – David784
Я попытался немного разъяснить свой ответ, чтобы объяснить. Надеюсь, теперь это немного яснее. Кроме того, я не совсем уверен, что вы имеете в виду, когда говорите «однажды, когда перетаскивание перетаскивается один раз, оно станет неперетаскиваемым». Вы говорите, что оригинальные перетаскивания нельзя перетаскивать? Или добавленные клоны? Я пробовал как в firefox, так и в chrome, и могу много раз перетаскивать оригинальные перетаскивающие устройства. Клоны, по-видимому, ограничены тем, что их тащит в свой новый контейнер, но я не совсем уверен, что это то, что вы имеете в виду, и что бы вы там ни делали. – David784