2010-06-11 127 views
0

我正在嘗試使用jquery-ui。我使用的拖放例子是幾乎正是我需要的,但不是兩個列表之間移動的項目之一,我想被克隆的項目:jquery-ui拖放 - 如何刪除項目?

http://jqueryui.com/demos/sortable/#connect-lists

$(function() { 
    $("#sortable1, #sortable2").sortable({ 
     connectWith: '.connectedSortable' 
    }).disableSelection(); 
}); 

<ul id="sortable1" class="connectedSortable"> 
    <li class="ui-state-default">Item 1</li> 
    <li class="ui-state-default">Item 2</li> 
    <li class="ui-state-default">Item 3</li> 
</ul> 

<ul id="sortable2" class="connectedSortable"> 
    <li class="ui-state-default">Item 1</li> 
    <li class="ui-state-default">Item 2</li> 
    <li class="ui-state-default">Item 3</li> 
</ul> 

因此,將項目從第一列表移動到第二列表導致列表1具有2個項目,並且列表2具有4個項目。我只是想讓它在物品上形成克隆。所以在上面的例子中,清單1仍然有3個項目,但清單2將有4個項目,

謝謝

回答

0

這不是你完美的答案,但我需要類似的東西... 加入可排序的remove()處理程序將允許您克隆即將被刪除的元素。試試這個:

$(function() { 
    $("#sortable1, #sortable2").sortable({ 
     connectWith: '.connectedSortable', 
     remove: function(event,ui){ 
     ui.item.clone().appendTo('#sortable1'); 
    } 
    }).disableSelection(); 
}); 

如果從sortable1拖動項目sortable2,當你放下它,它會被添加到sortable1的底部。在拖動開始時克隆項目是最有意義的,如果拖動不成功則刪除克隆。但是當您開始拖動時,我無法找到發生的事件。