2016-04-27 92 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提供的版本。我不確定與上次不同的是什麼,但它現在起作用。

相關問題