ドロップ可能で異常な問題が発生しています。私はたくさんのコードを持っているので、質問をできるだけ単純化しようとします。
コンテナー (ウィンドウのサイズ) 内にドロップ可能な 2 つの div があります。div1 は 5000px x 5000px で、ページの中央にあります (AKA 多数のオフセット位置があります)。div2 は、コンテナー内の最初の div の上に絶対に配置されます。幅はコンテナーの 100%、高さは約 50px です。
また、ある div から別の div に移動する必要があるドラッグ アンド ドロップ項目がたくさんあります。
問題は、項目を div2 から div1 に移動すると、再び div 2 に戻らないことです。それらは単に div の下に移動し、div1 に残ります。コードを投稿したいと思っていますが、役立つかどうかわかりません。
現在、各ドラッグ アンド ドロップ div で greedy:true を使用しています。
何か案は?前もって感謝します。
編集
これはdiv2のjqueryです
$("#bs-quickAdd-que").droppable({
accept: ".bs-items",
drop: function( e, ui ){
var $this = ui.draggable; // the element being dragged
$this.addClass("bs-que-items item-in-que");
$("#bs-quickAdd-que").css({"background-color": "transparent"});
},
over: function( e, ui ){ // when drag of the que box
var $this = ui.draggable; // the elementbeing dragged
$this.appendTo("#bs-quickAdd-que").removeClass("item-in-grid");
$("#bs-quickAdd-que").css({"background-color": "#fff"});
},
out: function( e, ui ){
var $this = ui.draggable; // the element being dragged
$this.appendTo(elem).addClass("item-in-grid").removeClass("bs-que-items");
$("#bs-quickAdd-que").css({"background-color": "transparent"});
},
greedy: true
});
これはdiv1のjqueryです
elem.droppable({
accept: ".bs-items",
greedy: true
});
ドラッグ可能なアイテムはこちら
$(".bs-items").draggable({
containment: "window",
grid: [10,10],
stack: ".bs-items",
cursorAt: {top: 15, left: 10},
drag: function(e,ui){
var $this = ui.helper, $parent = $this.parent(); // the element being dragged
if($parent.is("#grid")){
thisx = Math.round(e.pageX - elem.offset().left);
thisy = Math.round(e.pageY - elem.offset().top);
}else{
thisx = Math.round(e.pageX - $("#bs-quickAdd-que").offset().left);
thisy = Math.round(e.pageY - $("#bs-quickAdd-que").offset().top);
}
ui.position.left = thisx-($this.width()/2);
ui.position.top = thisy-($this.height()/2);
}
});