当我拖动我提出的项目时,将拖动克隆助手并将原始对象留在其位置,但之后不能再拖动。我需要能够将同一个对象拖动两次。我该怎么做?
$('.drag').draggable({
helper: 'clone',
snap: '.drop',
grid: [60, 60],
revert: function(droppable) {
if (droppable === false) {
return true;
}
else {
return false;
}
}
});
$('.drop').droppable({
drop: function(event, ui) {
ui.draggable.fadeOut(1000);
}
});
$('.drag').hover(
function() {
$(this).stop().animate({
opacity: "0.8"
});
}, function() {
$(this).stop().animate({
opacity: "1"
});
});
$('.drop').droppable({
drop: function(event, ui) {
if (ui.draggable[10, 10].id) {
$(this).append($(ui.helper).clone().draggable());
}
}
});
答案 0 :(得分:3)
这是工作代码的jsfiddle:
问题在于这一行:
$(this).append($(ui.helper).clone().draggable())
您应首先克隆帮助程序,将其附加到DOM,然后使其可拖动:
ui.helper.clone().appendTo($(this)).draggable()
您还应该知道您的代码包含在if语句if (ui.draggable[10, 10].id) {}
中。这不是真的,所以你的代码永远不会被执行。
我还对你的代码进行了一些春季清理,因为你有一些冗余。当你只需要它一次时,$('.drop').droppable()
被宣布两次。