jQuery .autocomplete使用._renderItem在IE中抛出错误

时间:2011-11-10 18:41:53

标签: javascript jquery internet-explorer jquery-ui

我有以下功能:

  $('#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

提前谢谢你。

1 个答案:

答案 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);
  }