@Zenko

Как получить отсортированный массив в jquery?

Подключаю фреймворк (https://code.jquery.com/ui/1.12.1/jquery-ui.js), использую sortable для списка. При перетягивании должен формироваться массив sortArray, где order-id - номер в списке, slider-id - id записи в БД.
При событии mouseup получаю старый порядок массива, потом снова меняю и получаю предыдущий порядок массива. Как получать актуальные данные? Почему происходит такой затык?
var sortArray = new Array();
	$("#sortable").on("mouseup", "li", function () {
		var i = 0;
		$("#sortable")
			.find('input[name="slider-id"]')
			.each(function () {
				++i;
				sortArray[i] = $(this).attr("value");				
			});
	});
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Не надо никакого mouseup. Открываем документацию к используемому плагину, смотрим, какие доступны обработчики событий, выбираем подходящий:

$('#sortable').sortable({
  stop() {
    const values = $('input[name="slider-id"]', this).get().map(n => n.value);
  },
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы