jQuery UI可排序:移动克隆但保持原始

9 javascript jquery jquery-ui

现在我有一列元素,我有它到我拖动的地方,它克隆但是当我放下时,它也删除原始.

$( ".column" ).sortable({
        helper: 'clone',
        connectWith: ".column",
        connectWith: ".grid",
        start: function(e, ui){
            ui.placeholder.height(ui.item.height());
             $(".column" ).find('.portlet:hidden').show()
             console.log('started')
        },
        stop: function(event, ui) {
            $(ui.helper).clone(true).removeClass('box ui-draggable ui-draggable-dragging').addClass('box-clone').appendTo('body');
        }
    });
Run Code Online (Sandbox Code Playgroud)

如何将原始文本保留在其中(无需将其重新附加到列中)并使克隆移动到所需位置?

ada*_*amb 13

$(this).sortable('cancel')在stop事件处理程序内使用将项目还原回原始列表/位置.http://api.jqueryui.com/sortable/#method-cancel

$( ".column" ).sortable({
        helper: 'clone',
        connectWith: ".column",
        connectWith: ".grid",
        start: function(e, ui){
            ui.placeholder.height(ui.item.height());
             $(".column" ).find('.portlet:hidden').show()
             console.log('started')
        },
        stop: function(event, ui) {
            $(ui.helper).clone(true).removeClass('box ui-draggable ui-draggable-dragging').addClass('box-clone').appendTo('body');
            $(this).sortable('cancel');
        }
    });
Run Code Online (Sandbox Code Playgroud)

更新:

该元素追加到该项目一度下探该位置的第二个列表,做一些类似以下内容:

stop: function(event, ui) {
            var toListID = ui.item.parent().attr('id');   
            var idx = $('#' + toListID).children().index($(ui.item[0]));
            if(idx== -1)return;
            var elm = $(ui.item[0]).clone(true).removeClass('box ui-draggable ui-draggable-dragging').addClass('box-clone');
            $('#' + toListID).children(':eq('+idx+')').after(elm);
            $(this).sortable('cancel');
        }
Run Code Online (Sandbox Code Playgroud)

请参阅完整演示的小提琴