jquery-автозаполнение (автономный) набор ширины

#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;
  

}