У меня есть пользовательский интерфейс, где пользователь может перемещать несколько вариантов между двумя списками выбора. Здесь это выглядит так:
Вы выбираете один или несколько элементов, затем нажимаете кнопку со стрелкой, и они перемещаются в другой список.
Проблема в том, что у меня есть функция сортировки, которая прибегает к опциям после того, как они были перемещены, и происходят действительно странные вещи. При первом перемещении опций слева направо все работает нормально. Если вы перемещаете другой элемент слева направо, он перезаписывает то, что уже есть. НО, если вы снова нажмете на левый список, элементы будут выглядеть как обычно! Если вы осмотрите дом, то увидите, что предметы там, нет никаких правил css, которые бы не отображали их, и не похоже, что дополнительные css применяются, когда они появляются снова. Код для перемещения элементов выглядит следующим образом:
$('#moveRight').click(function () {
// Get all selection options
var selectedOptions = $('#from option:selected');
// Let's remove our items from the from list...
$('#from option:selected').remove();
// Add them to the to list...
$('#to').append(selectedOptions);
// Sort alphabetically
$('#to option').sort(sortAlpha).appendTo('#to');
});
Я создал этот кодекс с рабочим примером интерфейса:
https://codepen.io/onekidney_/pen/YzyrYKX
Шаги для воспроизведения:
- Выделите любое количество параметров в левом списке.
- Нажмите кнопку "->".
- Выделите любое количество опций в левом списке.
- Нажмите кнопку «->».
Обратите внимание, что новые элементы являются единственными, которые отображаются в списке НО, если вы нажмете на левый список снова, они все появятся! Похоже, ошибка в сортировке, поскольку удаление, устраняющее эту проблему.
В этом вопросе была та же проблема, но, похоже, они исправили ее, удалив сортировку. Это новое поведение - это не было в эти годы go, когда этот код был развернут (вот почему jquery используется между прочим.) Я все еще хотел бы иметь возможность сортировки опций после их перемещения , У кого-нибудь есть представление о том, что здесь происходит?