【发布时间】:2017-06-05 08:47:29
【问题描述】:
_renderItem 根本没有执行,尝试使用 console.log 也没有打印任何消息。尝试使用 'autocomplete'、'ui-autocomplete'、'Autocomplete' 属性没有希望。
另外我无法理解“响应地图功能”的目的,所以禁用它。
$(document).ready(function () {
myVars.shId = $('#dataVar').attr('sh-data');
///// search ////// http://jsbin.com/xavatajiku/edit?js,output
console.log(myVars.shId);
$('#name-list').autocomplete({
source: function (request, response) {
$.ajax({
url: myVars.czbUrl,
data: { searchText: request.term, maxResults: 10, shopId: myVars.shId },
dataType: "json",
success: function (data) {
console.log(data);
/*response($.map(data, function (item) {
console.log(data);
return {
value: item.product_name,
avatar: item.pfimage_thumb,
rep: item.product_name,
selectedId: item.url
};
}))*/
}
})
},
select: function (event, ui) {
alert(ui.item ? ("You picked '" + ui.item.label)
: "Nothing selected, input was " + this.value);
return false;
}
}).autocomplete( "instance" )._renderItem = function (ul, item) {
console.log('test');
/*var inner_html = '<a><div class="list_item_container"><div class="image"><img src="' + item.pfimage_thumb + '"></div><div class="label"><h3> Reputation: ' + item.volume + '</h3></div><div class="description">' + item.product_name + '</div></div></a><hr/>';
return $("<li></li>")
.data("ui-autocomplete-item", item)
.append(inner_html)
.appendTo(ul);*/
};
HTML:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<h4>search:<input type="text" id="name-list" /></h4>
【问题讨论】:
-
将你的
jquery-ui.js放在jquery.min.js之后并检查控制台中是否有任何错误 -
是的,就是这样,我放错地方了,现在改正了。
-
您的
data是什么样的?您是否检查过它是否按预期交付?很可能renderMenu函数没有触发,因为response()回调没有收到任何东西 -
我可以在成功函数中看到我在 console.log(data) 中的数据,响应是否阻塞了 renderItem?,如果我启用响应,我会收到类似“item.product_name 为空”等错误。
-
启用响应功能时出现以下错误。 "main.js:67 Uncaught TypeError: Cannot read property 'product_name' of null"
标签: javascript jquery jquery-ui autocomplete