jqueryをdraggableとdroppableで使用しようとしています。jQuery:複数のドラッグ可能なアイテムと削除可能なアイテム?
私は、ページに複数のドラッグと複数のドロップブルを持っています。
drgaとdropはうまく動作しますが、問題を解決するには、divを1つのdroppableにドラッグ&ドロップすると、ページの他のdroppablesにもクローンが作成されます...また、 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とあなたが問題を見るべきです。
誰かがこの問題について助言してもらえますか?
ご協力いただければ幸いです。
EDIT:
近いが、まだなく、かなり行き方:https://jsfiddle.net/qkhunz8k/2/
の
更新修正 'あなたdroppablesのすべてがドロップ可能なクラスを持っている。' ..はい、ofcourseの彼らが持っています。それは何のためのクラスです!申し訳ありませんが、あなたのフィドルはまだ私がやろうとしているものではありません。あなたのフィドルでは、ドラッグが一度ドラッグされると、ドラッグが解除されます。 – rooz
これは、$( '。droppable') 'というクラスを持つすべての要素を表します。したがって、そのjQueryに追加すると、すべてに追加されます。そのため、 '$(this)'要素に追加する必要があります。あなたが表現した問題は、要素をドロップしたときに複数のターゲットに要素が追加されていたことでした。これが起こっている理由です。 – David784
私は答えを少し明確にしようとしました。私はそれがもう少し明確であることを願っています。また、「一度ドラッグをドラッグすると、ドラッグできなくなる」と言ったときの意味を正確にはわかりません。あなたは元のdraggablesはドラッグすることはできませんと言っていますか?または追加されたクローン?私はfirefoxとchromeの両方で試して、元のdraggablesを何度もドラッグすることができます。クローンは、新しくドロップ可能なコンテナ内にドラッグされることに限られているようですが、これがあなたが意味するものなのか、そしてあなたが何をしたいのかが正確にはわかりません。 – David784