JQuery自动完成结果样式
我正在尝试从自动完成结果中更改样式。
我试过了:
// Only change the inputs $('.ui-autocomplete-input').css('fontSize', '10px'); $('.ui-autocomplete-input').css('width','300px');
我搜索并无法找出结果使用的类,以便我可以更改其字体大小和宽度。
谢谢。
使用: jQuery-UI AutoComplete
编辑:我需要从我的结果中更改css,这来自我的JSON,而不是来自输入。 您发布的代码仅更改输入,而不是结果。 这就是为什么我要求结果列表使用的类(至少,我相信这是一个列表)。 我试图从ff使用fb而无法找到它。 再次感谢您的耐心等待。
EDIT2:我将使用jQuery UI中的自动完成function作为示例。
选中此项以查看jQuery-UI自动完成页面
在我从首页示例的文本框中键入“Ja”后,Java和JavaScript将显示为结果,位于文本框下方的小框中。
这个小盒子是我想要改变的CSS。 我上面的示例中的代码只更改了我的文本框CSS(我根本不需要)。
我不知道我现在是不是很清楚。 我希望如此,但如果没有,请告诉我; 如果需要我会更加努力地展示我的问题。
我需要的是包含结果项的UL类。
解决方案正如Zikes在对已接受答案的评论中所说,这是解决方案。 你只需要在你的CSS文件中放入ul.ui-autocomplete.ui-menu{width:300px}
。
这将使所有结果框css具有width:300px
(如样本)。
我忘记了页面加载时结果对象不存在,因此无法通过调用
$('...').css()
。 您实际上需要在CSS文件中放置ul.ui-autocomplete.ui-menu{width:300px}
,以便在生成结果并将其插入页面时生效。
– Zikes
有关自动填充小部件样式的信息,请访问: http : //docs.jquery.com/UI/Autocomplete#theming
小提琴
HTML
jQuery的
$('#auto').autocomplete({'source': ['abc','abd','abe','abf','jkl','mno','pqr','stu','vwx','yz'] });
CSS
ul.ui-autocomplete.ui-menu{width:400px} /* targets the first result's element, remove the a at the end to target the li itself */ ul.ui-autocomplete.ui-menu li:first-child a{ color:blue; }
我可以通过将此css添加到文档的 (自动完成javascript上方)来进行调整。
以下某些内容可能比其他内容更具相关性。 如果更改这些输入会影响您不希望受影响的其他元素,则可以使其特定于自动完成输入。
如果您正在使用官方jQuery ui自动完成(我在1.8.16)并想手动定义宽度,您可以这样做。
如果您正在使用缩小版本(如果没有,则通过匹配_resizeMenu手动查找),找到…
_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))}
…并替换为(在Math.max之前添加this.options.width ||)…
_resizeMenu:function(){var a=this.menu.element;a.outerWidth(this.options.width||Math.max(a.width("").outerWidth(),this.element.outerWidth()))}
…你现在可以在.autocomplete({width:200})函数中包含一个宽度值,jQuery将尊重它。 如果没有,它将默认为计算它。
您知道有两种优化代码的选项:
而不是这个:
$('.ui-autocomplete-input').css('fontSize', '10px'); $('.ui-autocomplete-input').css('width','300px');
你可以这样做:
$('.ui-autocomplete-input').css('fontSize', '10px').css('width','300px');
或者甚至更好,你应该这样做:
$('.ui-autocomplete-input').css({fontSize: '10px', width: '300px'});