$(".drag").draggable({
start: function() {
$(this).height(150).width(195);
},
cursor: "move",
revert: "invalid",
appendTo: "body",
containment: "document",
helper: "clone",
distance: 50
});
$(".drop").droppable({
hoverClass: "hoverDrop",
tolerance: "pointer",
drop: function(event, ui) {
var elem = $(ui.draggable).clone();
$(this).append(elem);
$(this).droppable('disable'); //disbles more than one draggable from being dropped
// console.log(this);
$(elem).draggable({
helper: "clone",
drag: function(event, ui) {
$(elem).prev().empty();
}
});
} //end of drop function
大家好!我正在拖放一个活动(td
元素),然后将其放入另一个td
中的另一个table
。删除之后,我希望能够将该元素拖动到同一td
中的另一个table
中(例如围绕时间表拖动课程表)
我设法“重新拖动”掉落的元素,但不是“移动”到另一个td
,我似乎能够做的就是继续克隆我拖动的元素。如何确保当我“重新拖动”我最初删除的元素时,它会从首次删除的初始td
中删除,然后“移动”到后续的td
?
答案 0 :(得分:2)
如果您想维持"可拖动性",您可以将ui.draggable
追加到新的td
。这样,你仍然可以拖动项目被删除,让你自由地统治每个项目的位置。
我已经稍微简化了您的示例,特别是drop
事件。我还删除了一些options
的简单性和更少的失败点。您可以在项目中重新添加options
:
$('.drag').draggable({
cursor: "move",
revert: true,
appendTo: "body",
containment: "document",
distance: 50
});
$('.drop').droppable({
hoverClass: "hoverDrop",
tolerance: "pointer",
drop: function(event, ui) {
$(this).find('ul').append(ui.draggable);
}
});
<强> Fiddle Demo 强>
如果您有任何疑问,请询问。