jquerydrag&;删除:克隆的可拖动移动原始移动
我在jQuery中遇到了拖放问题。在我的代码中有一个可拖放的div。当我将它移动到某个可拖放的表单元格时,div的克隆会附加到表单元格中。但是当我拖动克隆时,原来的div被移动了。这是drop上调用的函数: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
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。但是谢谢。