Изменение ширины виджетов автозаполнения jquery-ui индивидуально - PullRequest
25 голосов
/ 05 января 2011

Я работаю с несколькими виджетами автозаполнения jquery-ui на одной странице и хочу иметь возможность устанавливать ширину каждого из них отдельно.В настоящее время я делаю это так:

$($('.ui-autocomplete')[0]).width(150);
$($('.ui-autocomplete')[1]).width(105);
$($('.ui-autocomplete')[2]).width(80);

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

Когда запускается автозаполнение, создается впечатление, что создается <ul>, а затем помещается его под полем ввода, которое его инициировало.К сожалению, я не могу найти какие-либо уникальные идентификаторы в этом сгенерированном <ul>, чтобы привязаться к нему и применить некоторые CSS.

Моя проблема отличается от этой , поскольку я использую только автозаполнение по умолчанию, а не автозаполнение-комбинированный список.

Кроме того, копание в автозаполнение <ul> и сопоставление различных значений ширины блока автозаполнения со значениями внутри списка также не работает, поскольку значения генерируются динамически.

Есть идеи?

Ответы [ 11 ]

0 голосов
/ 22 августа 2012

Мне нравится ответ @Martin Lögdberg, но если вы используете фиксированную ширину вместо того, чтобы делать какие-то сложные математические расчеты для возвращаемых результатов, чтобы установить ширину, то вы также можете просто установить ширину в CSS

ul .ui-autocomplete {
  width: 50%;
}
...