我正在一个页面上使用多个 jQuery UI 自动完成小部件,想要能够单独设置每个小部件的宽度。目前,我是这样做的:
$($('.ui-autocomplete')[0]).width(150);
$($('.ui-autocomplete')[1]).width(105);
$($('.ui-autocomplete')[2]).width(80);
这并不是一个解决方案,因为用户可以以不同的顺序触发各种自动完成功能,而这段代码只是根据它们添加到 DOM 中的顺序对其进行样式设置。当自动完成被触发时,它似乎会创建一个
<ul>
并将其定位在触发它的输入框下面。不幸的是,我在这个生成的 <ul>
中找不到任何唯一的标识符来应用一些 CSS 样式。我的问题不同于这个问题,因为我只使用默认的自动完成,而不是自动完成组合框。
此外,挖掘自动完成的
<ul>
并将不同的自动完成框宽度与列表中的值匹配也行不通,因为这些值是动态生成的。有什么想法吗?
#input
,不清楚#div
是什么 - @Martin Lögdberg的答案对我有用。 - wal#div
是另一个元素(最好是空的,并且靠近#input
),ui-menu 将被放置在其中。这对我也没有起作用,所以我找到了一种完全基于 CSS 的不同方法。 - Armfoot.width()
对我无效,但是.outerWidth()
恰好做到了我想要的事情。也许我误解了这两种方法之间的区别,但也可能不仅仅是我一个人这样。 ;) - Kout