0

看看这个例子

文档说:

helper必须设置为“克隆”才能完美工作

确实,如果我删除helper: 'clone',拖动时会发生奇怪的事情。

问题是我对“克隆”行为不感兴趣。我希望这些项目从一个列表移动到另一个列表。

注意:原始(左)列表不应该是可排序的。

有任何想法吗?

4

2 回答 2

4

我一直在努力解决同样的问题。如果我确实将助手设置为“原始”,我会得到各种神经质和奇怪的行为。

不确定它是否符合您的目的,但我编写了一些代码来监听拖动开始/停止事件以及可排序的更新事件。

在拖动开始时,该项目从列表中隐藏。如果该项目未转移到另一个列表(由布尔值确定),则该项目未隐藏。但是,如果该项目被转移,那么原件将被移除。

$(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;
    }
});

}); ​</p>

修改 jsfiddle 示例。(http://jsfiddle.net/xD2dW/12/)

显然可以修改代码以满足您的特定需求,但我希望这至少是一个好的开始。

于 2012-10-31T19:02:53.890 回答
-1

helper: function(){ //Do Something; }

于 2013-02-06T12:45:37.623 回答