我遇到了jQuery自动完成的问题。从服务器获取数据的位置。自动完成功能列出了所有数据,但只有列表的第一个元素是可点击的。其他列表项显示为纯文本。 Web控制台中未显示任何错误。我的代码低于......
(function($) {
var searchDataList = [];
$('.searchContent').val("");
var $dataList = $('.searchContent');
$('.searchContent').keyup(
function() {
if ($(this).val().length > 2) {
$.post('search/content/' + $(this).val(), function(data){
searchDataList = [];
for (var i = 0; i < data.length; i++) {
var fileType = data[i].fileType;
var url = "";
if (fileType == "a") {
url = "playSearchedTrack?trackId="
+ data[i].fileId;
} else if (fileType == "v") {
url = "playSearchedVideo?trackId="
+ data[i].fileId;
} else if (fileType == "f") {
url = "playSearchedFilm?trackId="
+ data[i].fileId;
} else if (fileType == "u") {
url = "userProfile?trackId="+data[i].fileId;
}
searchDataList.push({
value : data[i].fileName,
label : data[i].fileName,
hrefUrl : url
});
}
$(".searchContent").autocomplete({
source : searchDataList,
select : function(e, ui) {
alert(ui.item.hrefUrl);
window.location.href = ui.item.hrefUrl;
}
}).data("ui-autocomplete")._renderItem =
function(ul,item) {
return $("<li></li>")
.append("<a>"+item.label+"</a>")
.appendTo(ul);
}
});
}
});
})(jQuery);