我正在使用自动完成功能来显示带有组标签名称的列表项。 我的自动完成工作正常,但是当我将鼠标悬停在topProduct上时,这只是列表项的某些标题进入了autocomplete,它在控制台中给出了错误。我不知道我怎么了。请给我任何解决此问题的提示。
$("#small-searchterms").autocomplete({
delay: 500,
appendTo: '.search-box',
source: function (request, response) {
$.ajax({
url: '@(Url.RouteUrl("SearchAutoComplete"))',
type: 'GET',
cache: false,
data: request,
dataType: 'json',
success: function (data) {
//console.log(data);
response(data.result);
}
});
},
select: function (event, ui) {
console.log(ui.item);
if (ui.item == 'undefined' || ui.item == undefined) {
return false;
}
else {
$("#small-searchterms").val(ui.item.Name);
setLocation(ui.item.ImageUrl);
return false;
}
},
}).data("ui-autocomplete")._renderItem = function (ul, item) {
console.log(item);
var t = item.Name;
//html encode
t = htmlEncode(t);
// title
if (!$(".search-box ul div").hasClass("product-title") && item.Type == "TopProducts") {
$("<div class='auto-term-suggestion product-title'><span>Top Product</span></div>")
.appendTo(ul);
}
if (item.ImageUrl != "") {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a class='ui-corner-all' href='" + item.Url + "'>" + "<img src='" + item.ImageUrl + "' />" + t + "</a>")
.appendTo(ul);
}
else {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a class='ui-corner-all' href='" + item.Url + "'>" + t +"</a>")
.appendTo(ul);
}
};