Получение позиции элемента в списке при его перетаскивании (ui.sortable) - PullRequest
12 голосов
/ 14 марта 2010

У меня есть сортируемый список, подобный этому: http://jqueryui.com/demos/sortable

Можно ли получить начальную и конечную позицию элемента в списке, когда он был перемещен? Я говорю об их номере позиции, в списке.

Например, если я переместу элемент 2 в позицию 5 в списке, я бы хотел присвоить эти два числа переменным.

Я новичок в jQuery - любая помощь будет принята с благодарностью.

Ответы [ 3 ]

32 голосов
/ 14 марта 2010

РЕШЕНИЕ:

$(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);
        }
    });
});
  • ПРИМЕЧАНИЕ: Обновлено для использования метода jQuery data () по совету Alconja
1 голос
/ 25 марта 2010

Почему-то ui.item.index() у меня не сработало.

Это сделал:

update: function (event, ui) 
{
    var index = $('li', $(ui.item).parent()).index(ui.item);
    alert(index);
}
1 голос
/ 14 марта 2010

Я полагаю, что вы хотите сделать это с помощью метода serialize . Сериализация - это получение нового порядка в списке.

...