根据我的理解,Draggable UI的帮助选项只是here描述的显示效果。
但是当它与表一起使用时,它似乎被窃听(追加位置是错误的)。
实施例: http://jsfiddle.net/hmj83/
$(".no_clone_item").draggable({
revert: 'invalid'
});
$(".clone_item").draggable({
helper: 'clone',
revert: 'invalid'
});
$("td").droppable({
drop: function (event, ui) {
$(ui.draggable).appendTo(this);
}
});
任何人都可以解释这种行为或提供解决方法/解决方法吗?
感谢。
答案 0 :(得分:2)
相反,我保留了帮助程序克隆,只是在拖动时隐藏了原始文件,并在拖动停止时重新显示它。
draggable({
start: function(event, ui) {
$(this).hide();
},
stop: function(event, ui) {
$(this).show();
}
});
答案 1 :(得分:1)
我认为最简单的方法是在.drop()
上使用CSS重置定位。
ui.draggable.css({ left: 0, top: 0 }).appendTo(this);
这至少可以解决你的问题。
注意:ui.draggable - 当前可拖动元素, jQuery对象。
DEMO :http://jsfiddle.net/tive/mJkd5/
jQuery UI将css属性top
和left
添加到拖动元素的原因仅用于视觉反馈。您可以通过添加以下CSS在您的解决方案中对此进行测试:
td img.no_clone_item {
left: auto !important;
top: auto !important;
}
启用此CSS后,您将无法获得视觉反馈。只有在掉落时,物品才会在视觉上移动。
当.draggable()
收到克隆元素时,该位置会添加到克隆元素中以进行视觉反馈。