我試圖使用jQuery的可拖動和可拖拽。jQuery:多個可拖動和可拖放?
我在我的頁面上有多個可拖放和多個可拖放對象。
drga和drop的工作正常,但問題是,當我拖放div到1 droppable,它會克隆在我的網頁上的其他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();
}
});
拖動紅色的div到黑色的div,你應該看到這個問題。
請問有人能就這個問題提出建議嗎?
任何幫助,將不勝感激。
編輯:
親近,但還是不太有:https://jsfiddle.net/qkhunz8k/2/
的修改 '所有你droppables的上課投擲的。' ..是着,當然他們有。那是什麼課程!抱歉,但你的小提琴仍然不是我想要做的。在你的小提琴中,一旦拖動被拖動一次,它將變得不可拖動。 – rooz
好的,這個想法是,當你這樣做時:'$('。droppable')',表示所有具有該類的元素。所以,如果你附加到該jQuery,它將追加到所有。這就是爲什麼你應該追加到'$(this)'元素。您表達的問題是,當您放棄該元素時,該元素將被追加到多個目標上。這就是發生這種情況的原因。 – David784
我試圖澄清我的答案,解釋一下。我希望現在更清楚一點。另外,當你說「一旦拖動拖動一次,它就會變成不可拖動的」,我不確定你的意思。你是說原始的拖拽不能被拖拽嗎?或附加的克隆?我已經嘗試了Firefox和Chrome,並且能夠拖動原始的可拖動多次。這些克隆似乎僅限於被拖入新的可丟棄容器中,但我不確定這是否是您的意思,並且就此而言,您希望它做什麼。 – David784