【发布时间】:2011-03-16 18:39:41
【问题描述】:
我在使用类别和自定义显示实现 jQuery 的自动完成功能时遇到了一些问题。
当我选择其中一个条目时,我收到一条错误消息,提示“ui.item”未定义。我的代码在下面
$jq.widget("custom.categoryautocomplete", $jq.ui.autocomplete, {
_renderMenu: function(ul, items){
var self = this;
var currentCategory = "";
$jq.each(items, function(index, item){
if(item.category != currentCategory){
ul.append(" <li class='ui-autocomplete-category'>" + item.category + "</li>");
currentCategory = item.category;
}
self._renderItem(ul, item);
});
}
});
$jq(function(){
$jq("#tlf\\:tlfs").categoryautocomplete({
source: getAutoCompleteSource(),
focus: function(event, ui){
$jq("#tlf\\:tlfs").val(ui.item.label);
return false;
},
select: function(event, ui){
$jq("#tlf\\:tlfs").val("");
// JavaScript code to select the row.
selectRow(ui.item.rownum);
return false;
}
}).data("categoryautocomplete")._renderItem = function (ul, item) {
return $jq("<li></li>")
.data("item.categoryautocomplete", item)
.append("<a>" + item.type +" - " + item.uid + "<br>" + item.desc + "</a>")
.appendTo(ul);
};
});
当我开始输入时,我可以看到下拉列表,所以我假设我的 JSON 格式正确。有什么想法可能导致“ui.item 未定义”错误?
编辑:经过进一步测试,当我删除 custom _renderItem 方法时,它似乎可以工作。但是,我不确定为什么会导致问题。
【问题讨论】:
标签: javascript jquery autocomplete