Получение позиции элемента в списке при его перетаскивании (ui.sortable)
У меня есть сортируемый список, подобный этому: http://jqueryui.com/demos/sortable
Возможно ли получить начальную и конечную позицию элемента в списке, когда он был перемещен? Я говорю об их номере позиции в списке.
Например, если я перемещаю элемент 2 в позицию 5 в списке, я хотел бы присвоить эти два числа переменным.
Я новичок в jQuery - любая помощь будет высоко оценена.
Ответы
Ответ 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);
}