Свойство selected в экземпляре Awesomplete представляет
собой числовой индекс текущего выбранного элемента в выпадающем списке
подсказок. Это внутренний механизм, который определяет позицию активного
элемента в массиве результатов автодополнения и синхронизирует
визуальное состояние списка с логикой навигации.
В типичной ситуации значение selected изменяется
автоматически при взаимодействии пользователя с клавиатурой или
программных вызовах методов навигации. Значение -1 означает
отсутствие активного выбора, тогда как любое неотрицательное число
соответствует индексу элемента в текущем списке предложений.
selected
в механизме навигацииАвтодополнение Awesomplete строится вокруг списка предложений, где
каждый элемент получает индекс в порядке отображения. Свойство
selected выполняет роль указателя на текущую позицию в этом
списке.
Основные сценарии изменения значения:
Каждое изменение selected приводит к обновлению класса
активного элемента в DOM, что визуально отражается подсветкой
строки.
При создании экземпляра Awesomplete значение selected
инициализируется как -1, что означает отсутствие активного
элемента.
Сброс происходит в следующих случаях:
При сбросе также очищается визуальное выделение, чтобы исключить конфликт между старым состоянием и новым набором данных.
gotoМетод goto напрямую управляет значением
selected, изменяя индекс активного элемента.
Логика работы:
Пример поведения:
awesomplete.goto(0); // первый элемент
awesomplete.goto(3); // четвёртый элемент
После каждого вызова selected обновляется синхронно с
UI.
next и previousНавигационные методы изменяют selected относительно
текущего значения.
next увеличивает индекс на единицу;previous уменьшает индекс на единицу;Поведение можно представить как работу указателя:
selected = -1 → 0 → 1 → 2 → ...
или в обратную сторону:
... → 2 → 1 → 0 → -1
При этом -1 обозначает состояние, при котором ни один
элемент не активен.
Изменение selected приводит к обновлению DOM-структуры
списка. Awesomplete использует внутренний список
li-элементов, соответствующих предложенным значениям.
Механизм обновления включает:
Таким образом, selected является связующим звеном между
логикой и отображением.
selectПри выборе элемента (например, нажатием Enter) значение
selected используется как индекс источника данных.
Алгоритм:
selected;selected сбрасывается в -1.Если selected остаётся -1, выбор не
происходит, что предотвращает некорректное заполнение поля.
При открытии выпадающего списка значение selected может
быть установлено автоматически:
0, если включена автоподсветка первого
элемента;-1, если активация происходит только по
навигации.Это поведение зависит от конфигурации и логики инициализации списка.
Свойство selected тесно связано с обработкой
клавиатурных событий. При вводе текста и появлении списка:
selected;selected;Состояние всегда синхронизируется с текущим содержимым input, чтобы исключить рассогласование между визуальной частью и данными.
Хотя selected обычно управляется внутренней логикой, его
можно изменять косвенно через методы экземпляра. Прямое присваивание
значения не рекомендуется, поскольку может нарушить синхронизацию DOM и
состояния компонента.
Корректный подход включает использование:
goto(index) для установки позиции;next() и previous() для относительной
навигации;evaluate() для пересчёта списка и сброса
состояния.При работе со свойством selected учитываются следующие
особенности:
selected = -1;selected выступает как центральный индекс состояния
внутри логики Awesomplete. Он связывает:
Без этого свойства невозможно корректное управление текущим активным элементом, так как именно оно определяет, какой элемент считается «фокусным» в данный момент времени.