我只是试图找到catcomplete的文档。我需要手册来了解如何使用_renderItem。我找到了这个http://jqueryui.com/autocomplete/#categories但似乎没有提到这只是_renderMenu的例子
_renderMenu: function( ul, items ) {
var that = this,
currentCategory = "";
$.each( items, function( index, item ) {
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
that._renderItemData( ul, item );
});
}
答案 0 :(得分:9)
catcomplete
只是一个示例,很遗憾不是jQuery UI的一部分,因此没有_renderItem
或renderMenu
的文档。可以将其视为jQuery源代码的一部分。但是,可以很容易地从源代码中重现该效果。
要使用catcomplete,我们需要确保将label
和category
值传递给catcomplete
,如下所示:
var data = [
{ label: "anders", category: "" },
{ label: "andreas", category: "" },
{ label: "antal", category: "" },
{ label: "annhhx10", category: "Products"},
{ label: "annk K12", category: "Products" },
{ label: "annttop C13", category: "Products" },
{ label: "anders andersson", category: "People" },
{ label: "andreas andersson", category: "People" },
{ label: "andreas johnson", category: "People" }
];
将空白字符串作为类别的项目不会放入类别中,并且与标准自动完成一样。给定类别的人将在该类别下进行子菜单。
Fiddle here(jQuery示例)
要为每个项添加一个类,只需将.addClass(item.category)
附加到catcomplete
小部件中最后一行代码的末尾:
that._renderItemData( ul, item ).addClass(item.category);