2012-08-25 67 views
2

我有一個UL列表,允許用戶移動物品。由於我希望將選擇保存到數據庫中,因此我對淘汰賽具有約束力。用淘汰賽創建jqueryUI可排序列表

排序作品然而UI複製該UI中的拖動的元素。視圖模型的數據是正確的,我可以看到它沒有在數據中創建額外的元素。

我有一個小的jsfiddle例如here

任何幫助將是真棒。

+0

+1的jsfiddle –

回答

1

更新的jsfiddle:http://jsfiddle.net/JVhZe/2/

我已經取代ui.item.removeData('previous_index');ui.item.remove()removeData是一個用於清理自定義數據的特定jQuery方法。您不必調用此方法,因爲在您解除綁定/刪除元素時,Knockout已經爲您執行此操作。

順便說一句,我建議你先看看這個優秀的執行淘汰賽排序列表中:

http://jsfiddle.net/rniemeyer/QWgRF/

+0

只想補充說,從小提琴結合當前版本住在這裏:https://github.com/rniemeyer/knockout-sortable –

1

可能?

<script type="text/javascript"> 
$(function() { 
       var curr; 
       $("#giftListEditor").sortable({ 
        start: function (event, ui) { 
         curr = viewModel.gifts()[ui.item.index()]; 
        }, 
        update: function (event, ui) { 
         var currIndex = ui.item.index(); 
         viewModel.gifts.remove(curr); 
         viewModel.gifts.splice(currIndex == -1 ? 0 : currIndex, 0, curr); 
        } 
       }).disableSelection(); 
}); 
</script>