Используйте пользовательский класс CSS для автозаполнения JQuery

0

У меня есть текстовое поле автозаполнения JQuery. У меня есть таблица стилей CSS, которая определяет тему для фокусов (например, для обычного фокуса) и для наведения (например, для обычного пользователя). Таблица стилей может изменяться в зависимости от выбора темы пользователя. Я понимаю, что автозаполнение JQuery использует такие классы, как "ui-state-focus", чтобы стилизовать элементы автоматического предложения. Мне нужно заменить этот класс моим собственным классом, чтобы он соответствовал теме и изменял таблицу стилей, изменяя всю тему автозаполнения jquery. (Следовательно, я не могу просто переопределить классы автозаполнения по умолчанию). Я достиг этого на ходу с помощью следующей строки кода:

$(element).autocomplete({
            source: function (request, response) {...})
            focus: function (event, ui) {
                event.preventDefault();
// adding this class gives desired result, and show correct styling on hover
                $(".ui-autocomplete li a").addClass("custom-onhover");
                if (ui != null) {
                    $(element).val(ui.item.value);
                }
            });

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

Теги:
autocomplete
jquery-ui-autocomplete

1 ответ

0
Лучший ответ

Я, наконец, смогу решить это, изменив фокус на:

 $(".ui-autocomplete li a").removeClass("ui-corner-all");
 $(".ui-autocomplete li a").addClass("custom-onhover"); 
 $(".ui-autocomplete li a").removeClass("custom-focus"); 
 var focussedElement = $(".ui-autocomplete .ui-state-focus"); 
 focussedElement.removeClass("ui-state-focus"); 
 focussedElement.addClass("custom-focus");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню