jQuery UI Draggable – 没有辅助克隆的connectToSortable – 或者如何将项目从一个列表移动到另一个列表

看看这个例子 。

文档说:

必须将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; }