私はそれはあなたがやりたいことができ、いくつかの修正を加えて、同様の質問hereに答えました:
Javascriptを:
$(function() {
$('.drag').draggable({
revert: "invalid",
scope: "items"
});
$('#droppable').droppable({
scope: "items",
// if you want to disable the dragging after drop un-comment this
/*
drop: function(e, ui) {
$(ui.draggable).draggable({"disabled":true});
}
*/
});
$('#droppable2').droppable();
$(':button').click(function() {
var $box = $('<div class="drag">Drag me</div>');
$('#cont').append($box);
$box.draggable({
revert: "invalid",
scope: "items"
});
});
});
HTML:
<div><button type="button">Add box</button></div>
<div id="droppable">Drop here</div>
<div id="droppable2">Out of scope!</div>
<div class="clear"></div>
<div id="cont">
<div id="draggable" class="drag">Drag me</div>
<div id="draggable2" class="drag">Drag me</div>
</div>
Example Link
EDIT: さて、ここに更新があります:
Javascriptを:
$(function() {
var dragOptions = {
revert: "invalid",
scope: "items",
helper: "clone"
}
$('.drag').draggable(dragOptions);
$('.droppable').droppable({
scope: "items",
drop: function(e, ui) {
var $drop = $(this);
$(ui.draggable).draggable({
"disabled": true
}).appendTo($drop);
}
});
$('#droppable2').droppable();
$(':button').click(function() {
var $box = $('<div class="drag">Drag me</div>');
$('#cont').append($box);
$box.draggable(dragOptions);
});
});
HTML:
<div><button type="button">Add box</button></div>
<div style="float: left;"><h3>Drop here:</h3>
<div class="drop1 droppable"></div>
</div>
<div style="float: left;"><h3>Drop here:</h3>
<div class="drop2 droppable"></div>
</div>
<div style="float: left;"><h3>Out of scope!</h3>
<div id="droppable2"></div>
</div>
<div class="clear"></div>
<div id="cont">
<div class="drag">Drag me</div>
<div class="drag">Drag me</div>
</div>
Example Link 2
どうもありがとうございました。しかし、私はドロップ領域に相対的な座標を保存する必要があるので、赤の要素の左上隅が内側にある必要があります。したがって、要素をドロップ領域にドラッグすると、左上隅が0px/0pxになります。デモでは、ドロップエリアの外に少しドラッグすると要素もドロップされます。私はあなたが私の言いたいことを理解してくれることを願っています...もっと良い:私はスクリーンショットを作った:http://img716.imageshack.us/img716/3473/droppedi.png要素がドロップされているが、左上隅が外側黄色の領域のため、私は負の座標を持っています。 – Tim
さて、私は私の答えを更新しました。これは良いアプローチだと思います。 BTWはjQueryUI Droppableからインスピレーションを受けました。[例](http://jqueryui.com/demos/droppable/#photo-manager) – ifaour
ああ、申し訳ありませんが、要素はどの位置に置いても、ホワイトボードのようなものでなければならず、柔軟でなければなりませんこの方法では。 – Tim