2016-04-27 88 views
1

我一直在成功地使用Jquery自动完成。最近,我升级到新版本的jquery和jquery ui,并且我得到了相同代码的错误。Jquery自动完成代码适用于旧版本的Jquery,但不适用于更高版本

工作版本:jQuery的1.8.2,jQuery UI的1.8.24 失败版本:jQuery的1.10.2,jQuery UI的1.11.4

以下是jQuery的自动完成代码:

$('#lakeId').autocomplete({ 
     delay: 1000, 
     minLength: 0, 
     source: function (request, response) { 
      $.ajax({ 
       url: '@Url.Action("getLakes","BuoyJS")', 
       type: "GET", 
       dataType: "json", 
       data: { term: request.term }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { label: item.lakeId, value: item.lakeId }; 
        })) 
       } 
      }) 
     }, 
    }); 

当它失败了,我收到一条消息,指出在成功从服务器返回后,在响应$ .map语句中找不到函数。以下是从服务器返回的内容(来自Firebug)的视图:

以下是返回给浏览器进行解析的JSON字符串。我通过选择responseText参数从Firebug中获得了此信息。 “LakeId”:“M:Maranacook湖”},{“LakeId”:“MH:Moosehead湖”},{“LakeId”:“MOUSAM:Mousam湖”},{“lakeId” “MS:Messalonskee Lake”},{“lakeId”:“MSLK:Mooselookmeguntic”}]“

+0

使用jQuerymigrate(https://github.com/jquery/jquery-migrate)它提供向后兼容性 – Shalini

回答

0

我能够通过逐步将Jquery的版本从1.8增加到2.2.3来解决问题,这是最新的Visual Studio 2015 Nuget提供的版本。我不确定与上次不同的是什么,但它现在起作用。

相关问题