拖动/删除元素在列表中的位置(ui.sortable)

时间:2010-03-14 13:15:59

标签: javascript jquery drag-and-drop position jquery-ui-sortable

我有一个像这样的可排序列表:http://jqueryui.com/demos/sortable

是否有可能在列表移动时获取元素的开始和结束位置?我在谈论他们的位置编号,在列表中。

例如,如果我将元素2移动到列表中的第5位,我想将这两个数字分配给变量。

我是jQuery的新手 - 非常感谢任何帮助。

3 个答案:

答案 0 :(得分:32)

  

解决方案:

$(function() {
    $('ul#sortable').sortable({
        start: function(event, ui) {
            var start_pos = ui.item.index();
            ui.item.data('start_pos', start_pos);
        },
        update: function(event, ui) {
            var start_pos = ui.item.data('start_pos');
            var end_pos = ui.item.index();
            alert(start_pos + ' - ' + end_pos);
        }
    });
});
  
      
  • 注意:已根据data()
  • 的建议更新以使用jQuery Alconja方法   

答案 1 :(得分:1)

我相信您要做的事情是使用serialize method完成的。 Serialize是获取列表的新顺序。

答案 2 :(得分:1)

出于某种原因,ui.item.index()对我不起作用。

这样做了:

update: function (event, ui) 
{
    var index = $('li', $(ui.item).parent()).index(ui.item);
    alert(index);
}