目前,我在引用ASHX文件的文本框上使用jQuery UI自动完成。
除了我想在列表末尾添加一个项目:“找不到项目?点击此处请求添加新项目”之外,其他所有内容都有效。
我尝试了以下代码行,但它所做的只是格式化项目,我无法追加。
data( "catcomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.catcomplete", item )
.append( $( "<a class='ui-menu-item'></a>" ).text( item.label ) )
.appendTo( $('ul').last('.autocomplete-category'));
};
提示?提示? Mucho gracias! :d
答案 0 :(得分:9)
您应该在Open
event火灾后添加额外的条目。这将使您能够访问列表,这是您所追求的,而不是每个元素,这是_renderItem
允许您访问的内容。
以下是设置已填充到列表中的条目的示例:
$("#myBox").autocomplete({
source: "[URL]",
minLength: 2,
open: function(event, ui) {
$("ul.ui-autocomplete.ui-menu .ui-menu-item:odd").css("background-color","#dedede");
}
});
答案 1 :(得分:1)
你不想摆弄_renderItem
。那是渲染一个项目的fn;为建议列表中的每个项目调用一次。
你想要做的是monkeypatch _renderMenu函数。 jQuery UI 1.8.6中的原始定义是这样的:
_renderMenu: function( ul, items ) {
var self = this;
$.each( items, function( index, item ) {
self._renderItem( ul, item );
});
},
对于其他版本的jQuery UI,它可能基本相同。
在执行$.each
后,修补此项以添加额外项目。