JQuery-UI 可拖动项目变为不可拖动

JQuery-UI draggable item become undraggable

我有 2 个 div:leftDivmainDivleftDiv 包含一些可拖放到 mainDiv 中的列表元素。我也想让这些放置的项目在 mainDiv 内可拖动,但是在 div 内第一次拖动后,项目变得不可拖动。我怎样才能解决这个问题?这是我的 jQuery 代码:

$('#output li').draggable({
    helper: 'clone',
    revert: 'invalid'
});
$('#mainDiv').droppable({
    drop: function (event, ui) {
        if(ui.draggable.hasClass('foo')){
            $(ui.helper).remove();
            $(this).append(ui.draggable.draggable());
        }
        else {
            var item = $('<div class="foo">').append(ui.draggable.text());
            item.draggable();
            $(this).append(item);
        }
    }
});

你可以这样修复:

$('#mainDiv').droppable({
    drop: function (event, ui) {
        if(ui.draggable.hasClass('foo')){
            //$(ui.helper).remove();
            var draggedItem = ui.draggable.draggable();            
            $(this).append(draggedItem);
            draggedItem.draggable();
        }
        else {
            var item = $('<div class="foo">').append(ui.draggable.text());
            item.draggable();
            $(this).append(item);
        }
    }
});

Online Demo (fiddle)