jQuery сортируемый получить 2 элемента, которые меняются местами
Я не могу узнать, как получить целевой элемент с сортируемым пользовательским интерфейсом jQuery.
$("#pages").sortable({
opacity: 0.6,
update: function(event, ui) {
var first = ui.item; // First element to swap
var second = ???? // Second element to swap
swapOnServer(first, second);
}
});
Все параметры, которые я пробовал, указывают на перетаскиваемый элемент, но не тот, с которым он переставлен:ui.item[0]
, event.srcElement
, event.toElement
.
Дополнительно,this
указывает на элемент LIST (OL).
поговоркавторой Я имею в виду следующее:
Оригинальный заказ:
| 0 |1 | 2 |3 |
Мы перетаскиваем элемент 1 и опускаем его в позицию 3. В результате получим:
| 0 |3 | 2 |1 |
Таким образом, первый элемент равен 1, а второй - 3 (НЕПРАВИЛЬНО! См. Ниже).
ОБНОВЛЕНИЕ: я понял, что я неправильно понял. Новый порядок в этом случае будет.
| 0 | 2 | 3 |1 |
В результате мой вопрос на самом деле не имеет смысла. Спасибо всем за помощь. Я отмечу голосование и отмечу ответ.
Итак, вопрос в том, как получить второй элемент здесь?
ТЕКУЩИЙ ВРЕМЕННОЕ РЕШЕНИЕобменивать в сортируемом) ниже. Использует временный массив с заказами.
var prevPagesOrder = [];
$("#pages").sortable({
start: function(event, ui) {
prevPagesOrder = $(this).sortable('toArray');
},
update: function(event, ui) {
var currentOrder = $(this).sortable('toArray');
var first = ui.item[0].id;
var second = currentOrder[prevPagesOrder.indexOf(first)];
swapOnServer(first, second);
}
});
Спасибо,
Дмитрий.