我有以下功能:
$('#s').autocomplete({
source: function(request, response) {
$.get( http://theurl.com/?ajax=true", {s: request.term }, function(data) { response(data) }, 'json');
},
appendTo: "#s-autocomplete",
minLength: 2,
select: function(event, ui){
document.location = ui.item.link;
},
complete: function(){
$("#search-form .searchbt").removeClass('loading');
}
}).data("autocomplete")._renderItem = function(ul, item) {
$('<li>').data('item.autocomplete', item).append("<a href=" + item.link + " class=" + item.class + ">" + item.label + "</a>").appendTo(ul);
}
此代码在IE以外的所有浏览器中都能正常运行。我已经使用console.log来调试过去一小时而没有运气。
我收到的错误是“错误:预期标识符”,它发生在ie7 + ie8
我很茫然,我能说的唯一见解就是在评论._renderItem
内的所有内容时我没有收到任何错误。
请帮助我在这个上发疯。
jQuery v 1.6.4 jQuery UI 1.8.16
提前谢谢你。
答案 0 :(得分:4)
我的猜测是你使用class
作为对象成员,它是IE JS中的保留字。
您可以尝试:
}).data("autocomplete")._renderItem = function(ul, item) {
$('<li>').data('item.autocomplete', item)
.append("<a href=" + item.link + " class=" + item['class'] + ">" + item.label + "</a>")
.appendTo(ul);
}