将项目从一个静态列表复制到另一个静态列表并还原

时间:2015-11-30 16:40:22

标签: jquery jquery-ui jquery-mobile jquery-ui-draggable jquery-ui-sortable

我有两个清单。 ListOneListTwoListTwo中有1-5个项目,并希望将所需的项目拖动到ListOne,该项目最初将为空白,该项目将添加到ListOne但该项目不会被删除来自ListTwo。我已经完成了直到这里。

问题:当我想将项目从ListOne拖到ListTwo时,此项应从ListOne移除,但不应添加到ListTwo。这不会发生。

简单来说,我希望ListTwo是静态的。

这是我的小提琴链接。http://jsfiddle.net/hQnWG/1596/

1 个答案:

答案 0 :(得分:2)

这是一个解决方案。我将sortable1连接到sortable2并在sortable2上使用了一个接收处理程序,以便在项目移动时将其删除。

$(function() {
    $("#sortable2").sortable({
        connectWith: "#sortable1",

        helper: function (e, li) {
            this.copyHelper = li.clone().insertAfter(li);

            $(this).data('copied', false);

            return li.clone();
        },
        stop: function () {

            var copied = $(this).data('copied');

            if (!copied) {
                this.copyHelper.remove();
            }

            this.copyHelper = null;
        },

        receive: function(e, ui){
            $(ui.item[0]).remove();
        }
    });

    $("#sortable1").sortable({
        connectWith: "#sortable2",
        receive: function (e, ui) {
            ui.sender.data('copied', true);
        }
    });

    $("#sortable1").on("click", "li", function () {


    });   
});

http://jsfiddle.net/jufcd4y8/