我有两列可拖动的li元素 . 当我将一个元素从一列拖到另一列时,我需要克隆拖动的元素并将其附加到新列(我希望元素也保留在前一列中) .
ls.droppable({ // ls refers to the column containing draggable elements
greedy:true,
hoverClass: 'drop-hover',
over: function (e, u) {
},
drop: function (e, u) {
afterDrop(u, $(this));
}
});
afterDrop函数是
window.afterDrop = function (u, ls) {
var c = u.draggable.clone(true, true);
var d = jQuery('.onestrip', ls);
d.append(c);
}
现在,当我在另一列中拖动新添加的元素时,将拖动上一列中的旧元素 . 如何为拖动的元素附加一个单独的可拖动(我尝试禁用然后再次附加拖动,但仍然相同)
编辑:我做了类似的情况,看看这个链接http://jsbin.com/aseqid/4/edit ....尝试将红色框拖放到绿色框中 . 然后再次尝试拖动之前删除的红色框...拖动事件未附加到丢弃的红色框...我已尝试将事件附加到已删除的框中,但它仍然引用原始的红色框
2 回答
这是你正在寻找的行为吗?
已将“ID”测试更改为“课堂”并进行了一些调整
我已经更新了你的代码
http://jsbin.com/aseqid/10/edit
我相信它的行为就是这样,因为你用可拖动的数据和事件克隆了新的附加元素 .
尝试使用
clone()
而不是clone(true, true)
,并初始化新元素所需的数据和事件,而不是全部克隆它们 .http://jsbin.com/aseqid/8/edit