jQuery UI - Draggable Helper Clone

时间:2015-09-17 16:31:55

标签: jquery jquery-ui drag-and-drop

提前感谢你看看这个!

我的目标:

  • 将对象拖放到艺术画布后,对象的原始(或副本)必须保留在"工具栏中。在顶部,以便用户可以重复使用它。

  • 将拖动的对象拖放到艺术画布上后,如果用户决定将其移动,我需要它在整个画布中保持可拖动

发生了什么:

  • (完成)正在按预期克隆对象并将其放到画布上
  • 一旦丢弃,对象就不再沿着画布拖动。我试图弄清楚如何在掉线后保持拖拽。

克隆选项是我能够创建可拖动对象的新实例的唯一方法,也许我正在思考错误的方向。

我正在创建一个克隆:

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

$("#artCanvas").droppable({
    accept: ".objectDrag",
    drop: function(event,ui){
        var new_smiley = $(ui.helper).clone();
        $(this).append(new_smiley );
    }
});

这是一个JSFiddle,用于直观地了解正在发生的事情:  http://jsfiddle.net/YRfVd/55/

如果我不清楚或者可以提供进一步的解释,请告诉我。再次,非常感谢你花时间看这个 - 你们真棒!

1 个答案:

答案 0 :(得分:8)

您可以通过draggable()函数初始化克隆上的拖动功能,并删除类objectDrag,以便新添加的对象不会开始创建自己的克隆。

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

$("#artCanvas").droppable({
    accept: ".objectDrag",
    drop: function(event,ui){
        var new_signature = $(ui.helper).clone().removeClass('objectDrag');
        new_signature.draggable();
        $(this).append(new_signature);
    }
});

JSFiddle:http://jsfiddle.net/YRfVd/56/