Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

РЕШЕНИЕ:

$(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

Ответ 2

Я считаю, что то, что вы хотите сделать, сделано с помощью метода сериализации. Serialize получает новый порядок списка.

Ответ 3

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

Это:

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