Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquerydrag&;删除:克隆的可拖动移动原始移动_Jquery_Jquery Ui_Drag And Drop_Jquery Ui Draggable - Fatal编程技术网

jquerydrag&;删除:克隆的可拖动移动原始移动

jquerydrag&;删除:克隆的可拖动移动原始移动,jquery,jquery-ui,drag-and-drop,jquery-ui-draggable,Jquery,Jquery Ui,Drag And Drop,Jquery Ui Draggable,我在jQuery中遇到了拖放问题。在我的代码中有一个可拖放的div。当我将它移动到某个可拖放的表单元格时,div的克隆会附加到表单元格中。但是当我拖动克隆时,原来的div被移动了。这是drop上调用的函数: function(event, ui) { var draggable = ui.draggable.clone(true); // cloning including attrs and children draggable.draggable(); // this is

我在jQuery中遇到了拖放问题。在我的代码中有一个可拖放的div。当我将它移动到某个可拖放的表单元格时,div的克隆会附加到表单元格中。但是当我拖动克隆时,原来的div被移动了。这是drop上调用的函数:

function(event, ui)
{
    var draggable = ui.draggable.clone(true);  // cloning including attrs and children
    draggable.draggable(); // this is something I tried with no effect
    $(this).empty(); // empty the droppable cell
    $(this).append(draggable); // append the div to the cell
}
通过谷歌搜索,我找不到一个明确的答案。我不知道这是否与此有关,但div有一个相对的位置(并且需要保持这种状态)


如何确保可以像原始克隆一样拖动克隆?

是否查看了?

是否查看了?

是否尝试将false传递到.clone()中?该bool代表withDataAndEvents,因此您将继承所有附加到旧对象的相同事件


编辑:如果出于其他原因需要withDataAndEvents,可以在进行克隆之前尝试在原始版本右侧使用Dragable(“销毁”),然后在克隆之后再次使其可拖动?虽然不是最优雅的,但它可以工作:

您是否尝试将false传递到.clone()中?该bool代表withDataAndEvents,因此您将继承所有附加到旧对象的相同事件


编辑:如果出于其他原因需要withDataAndEvents,可以在进行克隆之前尝试在原始版本右侧使用Dragable(“销毁”),然后在克隆之后再次使其可拖动?虽然不是最优雅的,但它可以工作:

你能展示完整的代码吗?我现在只是猜测,但是使用“delegate()”可能是解决方案的关键。

您能展示完整的代码吗?我现在只是猜测,但是使用“delegate()”可能是解决方案的关键。

更改
可拖动的
初始化代码,以包括
帮助程序:“克隆”


否则,您将拖动原始项,该原始项刚刚留在完成拖动操作的位置。

更改
draggable
init代码以包含
helper:“clone”


否则,您将拖动原始项目,该项目将留在您完成拖动操作的地方。

我将这样做,这应该可以做到

 $(".draggable").draggable({ helper: 'clone' });
 $(".droppable").droppable({
    drop: function (event, ui) {
       ui.draggable.clone().appendTo($(this)).draggable();
    }
 });

我不知道你是否这样做了,但不要在可拖动设备上使用id-s,因为它们也将被克隆。另外,在对元素应用DragTable之前,必须先附加元素。

我就是这样做的,这应该可以做到

 $(".draggable").draggable({ helper: 'clone' });
 $(".droppable").droppable({
    drop: function (event, ui) {
       ui.draggable.clone().appendTo($(this)).draggable();
    }
 });

我不知道你是否这样做了,但不要在可拖动设备上使用id-s,因为它们也将被克隆。此外,在对元素应用DragTable之前,必须先附加该元素。

是否可以将
id
属性与原始元素一起克隆?这很可能会导致奇怪的问题。@Andrew:是的,它是随它一起克隆的,但我不需要可拖动的id属性。我使用另一个基于自定义属性(“[drag=article]”)的jquery选择器。
id
属性是否可以与原始元素一起克隆?这很可能会导致奇怪的问题。@Andrew:是的,它是随它一起克隆的,但我不需要可拖动的id属性。我使用另一个jquery选择器,基于一个自定义属性(“[drag=article]”)。是的,我有。如果我拖动克隆,原始的会从它的起始位置被拖动。是的,我有。如果我拖动克隆,则会从其起始位置拖动原始元素。是的,我尝试在克隆方法中使用false,但我需要子元素和属性相同,因此我必须使用true。明天我将尝试您编辑的评论,谢谢。是的,我尝试在克隆方法中使用false,但我需要子元素和属性相同,因此我使用true。明天我会试试你编辑的评论,谢谢。谢谢!这很有效。可能最大的区别是在克隆上使用appendTo,而不是在可拖放文件中使用append。是否也有办法将可拖动属性克隆到克隆中?因为现在新的DragTable没有助手,我不想硬编码它。找到了我自己对该注释的答案:ui.DragTable.DragTable('option')复制当前DragTable的所有选项。谢谢!这很有效。可能最大的区别是在克隆上使用appendTo,而不是在可拖放文件中使用append。是否也有办法将可拖动属性克隆到克隆中?因为现在新的DragTable没有助手,我不想硬编码它。找到了我自己对该注释的答案:ui.DragTable.DragTable('option')复制当前DragTable的所有选项。是的,我使用了助手:“clone”,但它不是关于拖动,而是关于删除时实际元素的克隆。是的,我使用了helper:“clone”,但它不是关于拖动,而是关于删除时实际元素的克隆。我不知道现在应该如何使用委托,但我认为由于rucsi,我已经有了一个解决方案。但谢谢。我现在不知道该如何使用委托,但我想我已经有了一个解决方案,多亏了rucsi。但是谢谢。