#javascript #jquery-autocomplete
#javascript #jquery-автозаполнение
Вопрос:
Я с удовольствием использую этот автозаполнитель:http://code.google.com/p/jquery-autocomplete /.
Мне нужно изменить ширину сгенерированного списка ul, но я не могу сделать это через CSS:
.acResults {
width: 348px;
}
кажется, что ширина устанавливается в javascript каждый раз, когда результат генерируется как:
$('.acResults').width(348);
работает, но только один раз (перезаписывается после ввода).
Я пытался использовать вышеупомянутую функцию как в «showResult», так и в «onItemSelect», но обе они перезаписываются сразу после этого.
Заранее спасибо.
Ответ №1:
Вы можете исправить стиль с помощью !important
, хотя это не очень хорошая практика. Пример:
.acResults {
width: 348px !important;
}
Ответ №2:
Просто удалите (или измените) строки в вашей локальной копии плагина, которые задают ширину списка, т.е.:
extraWidth = this.dom.$results.outerWidth() - this.dom.$results.width();
this.dom.$results.width(this.dom.$elem.outerWidth() - extraWidth);
Вы могли бы изменить его на:
this.dom.$results
.width(Math.max(this.dom.$elem.outerWidth() - extraWidth, 348));
Если вы используете уменьшенную версию, возьмите не уменьшенную версию, измените ее и запустите через выбранный вами минификатор.
В качестве альтернативы, вы могли бы создать исправление, которое использует параметр минимальной ширины списка, и отправить его на dylan.verheul или, возможно, отправить запрос на новую функцию на странице проблем.
Комментарии:
1. Мне не нравится редактировать сам плагин, но я отправлю проблему.
2. Спасибо за отправку вопроса!
Ответ №3:
просто увеличьте ширину ‘ac_results’, и это скроет y-переполнение
.ac_results ul {
width: 180px;
/*
increase width to hide overflow
*/
list-style-position: outside;
list-style: none;
padding: 0;
margin: 0;
}