2010-06-14 60 views
4

我有一個可排序的列表。當一個新項目被拖入列表中(從一個可拖動的項目),我想訪問它來執行一些操作。這是我有:可排序+可拖動演示 - 如何訪問丟棄的項目?

$("#mySortableList").sortable({ 
    receive: function(event, ui) { 
     alert("this is the dropped item: " + ui.item.toString()); 
    } 
}).disableSelection(); 

所以「ui.item」是被刪除的元素,但它不是重複的項目,現在將我的列表的一部分。我如何訪問被刪除的新項目?我使用的是精確演示從jQuery UI的網站在這裏: http://jqueryui.com/demos/draggable/#sortable

感謝

回答

4

您可以在stop事件獲得該項目,並檢查它的可拖動來了(它沒有一個手柄連接,它會如果它是從排序),像這樣:

$("#mySortableList").sortable({ 
    stop: function(event, ui) { 
    //check it wasn't here previously 
    if(!ui.item.data('tag') && !ui.item.data('handle')) { 
     ui.item.data('tag', true); //tag new draggable drops 
     alert("this is the dropped item: " + ui.item.toString()); 
    } 
}).disableSelection(); 

You can see a demo to play/test with here,因爲手柄沒有得到補充,至少不會在重要的方式,我們標記項目離隊可拖動的,以便它們在移入可排序內部時不會再次觸發警報。

+0

哇這是偉大的!有沒有辦法在stop()事件中訪問拖動的項目?看起來你可以得到一個或另一個,但不是兩個,例如[receive =>拖動項目],[stop =>克隆項目]。我基本上需要將一些數據從拖動到克隆的項目。這是一個很好的開始,謝謝。在最糟糕的情況下,我想我可以在receive()中設置一個指向被拖動項的指針,因爲它先被調用,然後在stop()中使用它。 – user246114 2010-06-15 02:23:16

0

我目前除接收的物品是這樣的:

$(this).data().sortable.currentItem.remove(); --now to find its INDEX! 
相關問題