目前,我在引用jQuery文件的文本框上使用ASHX自动完成。
一切都很正常,除了我想在列表末尾追加一个项目:“没有找到项目?单击此处请求添加一个新项目。”
我尝试了下面的代码行,但它所做的只是格式化项目的,我无法追加。
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'));
};
提示?小贴士?谢谢!:D
发布于 2011-04-19 00:35:37
您应该在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");
}
});
发布于 2011-04-19 00:35:58
你不会想要摆弄_renderItem
的。这是呈现一个项目的fn;它为建议列表中的每个项目调用一次。
您想要做的是对_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
之后,对此进行修补以添加额外的项目。
https://stackoverflow.com/questions/5705960
复制相似问题