5
我已经使用jquery-ui实现了一个自动完成功能。我想限制显示的项目数量为10,并且每个项目都是自定义格式的。这里是代码jquery-ui-autocomplete - 覆盖_renderMenu和_renderItem
$("#text1").autocomplete({
minLength: 2,
source: function (request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i")
, results = [];
$.each(source, function (i, value) {
if (matcher.test(value.value) && $.inArray(value.label, results) < 0) {
results.push(value.label);
}
});
response(results);
}
}).data("autocomplete")
._renderMenu = function(ul, items) {
var self = this;
$.each(items, function (index, item) {
if (index < 10) {
$.ui.autocomplete.prototype._renderItem = function(ul, item) {
var re = new RegExp("^" + this.term, "i");
var t = item.label.replace(re, "<span style='font-weight:bold;color: Blue;'>" + "$&" + "</span>");
var listItem = $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + t + "</a>")
.appendTo(ul);
return listItem;
}
}
});
};
这似乎不工作,因为它没有投掷任何结果。有关于此的任何帮助?
嗨Anit,我有类似的问题。你有可能发布工作代码吗? – 2013-07-16 00:51:50
@ Beetroot-Beetroot您已经覆盖了_renderMenu和_renderItem。代码已深入挖掘。但这里是你可以查看的参考http://stackoverflow.com/questions/2435964/jqueryui-how-can-i-custom-format-the-autocomplete-plug-in-results – 2013-07-16 02:35:19
@Akit,谢谢你你的快速回复。与此同时,我通过调用'._renderMenu'中的'._renderItemData'来得到一个结果来重现插件的标准行为。这适用于我的情况,因为我想要标准菜单项,但使用分隔符将菜单分成多个部分。再次感谢。 – 2013-07-16 03:18:10