拖动时克隆节点

mar*_*ark 21 javascript jquery clone draggable

我希望能够创建我想要拖动的元素的副本.即时通讯使用标准的ui draggable和droppable.我知道帮助克隆选项.但这不会创建副本.拖动的项目将恢复到原始位置.

Sco*_*ott 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());
                }
        });

    });
Run Code Online (Sandbox Code Playgroud)

而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>
Run Code Online (Sandbox Code Playgroud)


Sol*_*olo 9

由于我无法评论(还),我会将此作为一个单独的答案 - 如果有人像我一样会发现这个问题:

对于评论中的问题

"但我希望克隆/丢弃的元素处于被丢弃的相同位置.你知道我该怎么做吗?"

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

   $(this).append($(ui.draggable).clone());
Run Code Online (Sandbox Code Playgroud)

   $(this).append($(ui.helper).clone());
Run Code Online (Sandbox Code Playgroud)

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

希望能帮助到你.