看看这个例子。
文档说:
helper
必须设置为"克隆"才能完美运行
确实,如果我删除helper: 'clone'
,拖动时会发生奇怪的事情。
问题是我对"克隆"行为不感兴趣。我希望项目从一个列表移动到另一个列表。
注意:原始(左)列表不应可排序。
有什么想法吗?
我一直在为同样的问题而苦苦挣扎。如果我确实将助手设置为"原始",我就会得到各种跳跃和奇怪的行为。
不确定它是否符合您的目的,但我编写了一些代码来侦听拖动开始/停止事件以及可排序的更新事件。
拖动启动时,该项将从列表中隐藏。如果该项未传输到其他列表(由布尔值确定),则该项将取消隐藏。但是,如果转移了项目,则会删除原始项目。
$(function() {
var transferred = false;
$('#draggable li').draggable({
connectToSortable: '#sortable',
helper: 'clone',
start: function(event, ui)
{
$(this).hide();
},
stop: function(event, ui)
{
if(!transferred)
$(this).show();
else
{
$(this).remove();
transferred = false;
}
}
});
$('#sortable').sortable({
receive: function(event, ui)
{
transferred = true;
}
});
});
修改后的 jsfiddle 示例。(http://jsfiddle.net/xD2dW/12/)
显然,可以修改代码以满足您的特定需求,但我希望这至少是一个好的开始。
helper: function(){//Do Something; }