21

我希望能够创建我要拖动的元素的副本。我使用标准的 ui 可拖放。我知道助手克隆选项。但这不会创建副本。拖动的项目恢复到原始位置。

4

3 回答 3

35

标记,

试试这个例子:

        $(document).ready(function(){
        $(".objectDrag").draggable({helper:'clone'});  

        $("#garbageCollector").droppable({
            accept: ".objectDrag",
            drop: function(event,ui){
                    console.log("Item was Dropped");
                    $(this).append($(ui.draggable).clone());
                }
        });

    });

Html 看起来像这样

        <div class="objectDrag" 
        style="width:10%; color:white;border:black 1px solid; background-color:#00A">Drag me</div>

    <div id="garbageCollector" style="width:100%; height:400px; background-color:#333; color:white;"> Drop items on me</div>
于 2009-03-08T16:26:27.760 回答
9

由于我(还)无法发表评论,因此我将把它作为一个单独的答案 - 以防有人像我一样发现这个问题:

对于评论中的问题

“但我希望克隆/删除的元素位于它被删除的相同位置。你知道我该怎么做吗?”

我在不同的 SO 问题中找到了解决方案,答案是更改此行:

   $(this).append($(ui.draggable).clone());

   $(this).append($(ui.helper).clone());

(将 ui.draggable 更改为 ui.helper)

希望能帮助到你。

于 2011-01-13T14:39:41.293 回答
2

要重新拖动克隆/副本,请将withDataAndEvents参数设置为true

$(this).append($(ui.draggable).clone(*true*));
于 2010-03-01T13:05:11.253 回答