@ArutaGerman

Как поменять местами?

В js ни бум-бум еще и сейчас делаю страницу, на которой понадобилось, чтобы при нажатии на стрелку "вверх" или "вниз" заказ поднимался выше или ниже на 1 строку соответственно.
Грубо говоря это должно быть так при каждом нажатии на кнопку (вверх или вниз) пока блок не займёт крайнюю позицию в том направлении куда его двигали:

блок 1
блок 2
блок 3
блок 4
,..
блок 10

При нажатии на кнопку вверху у "блока 4", нужно чтобы он стал на место "блока 3", а "блок 3" спустился на место "блока 4" и теперь "блок 4" получил номер 3 в таблице, а "блок 3" нумеруется как 4 и так до тех пор пока в ходе нажатий на кнопку вверх "блок 4" не станет первым в списке.

Подскажите, пожалуйста, как это сделать.
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
anatoly_kulikov
@anatoly_kulikov
Помог ответ? Отметь решением!
Первое, что пришло в голову:
- отправляем данные в массив
- отрисовываем массив, но кнопки элементов вешаем функции вверх/вниз

При нажатии на кнопку срабатывает соответствующая функция, которая принимает на вход порядковый номер элемента в массиве и что с ним делать (двигать вверх или вниз).

Функция проверяет, можно ли совершить действие, после чего выполняет его или нет, и при выполнении пересобирает массив, после чего изменения вновь выносятся на экран.

Можно вместо позиции в массиве ввести какой-нить произвольный ключ.

Скорее всего для этого уже написан плагин, нужно поискать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@FKV
Подключаем https://jquery.com/
И https://jqueryui.com/
Смотрим пример https://jqueryui.com/sortable/
Ниже есть view source смотрим и повторяем
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы