2014-10-30 133 views
5

在我的mvc 4 web應用程序中,我收到以下錯誤「Uncaught TypeError:undefined不是函數jquery.unobtrusive-ajax.js:115」Uncaught TypeError:undefined不是函數jquery.unobtrusive-ajax.js

在這條線

我們

$("a[data-ajax=true]").live("click", function (evt) { 
    evt.preventDefault(); 
    asyncRequest(this, { 
     url: this.href, 
     type: "GET", 
     data: [] 
    }); 
}); 

我發現有很多人得到同樣的錯誤和閱讀帖子。幾乎所有人都推薦重新排序jquery和其他腳本,我一直在嘗試很長時間,但似乎沒有任何東西能夠消除這個錯誤。

目前我在頭部有以下順序的css和腳本。任何人都可以找到任何問題嗎?謝謝

<link href="/Content/main/css/bootstrap.css" rel="stylesheet"/> 
<link href="/Content/UiDatePicker.css" rel="stylesheet"/> 
<link href="/Content/Site.css" rel="stylesheet"/> 

<script src="/Scripts/modernizr-2.5.3.js"></script> 
<script src="/Scripts/jquery-1.9.1.js"></script> 
<script src="/Scripts/jquery-ui.js"></script> 
<script src="/Scripts/bootstrap.js"></script> 
<script src="/Scripts/respond.js"></script> 
<script src="/Content/main/js/General.js"></script> 


<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 
+0

你是否檢查過_jquery.unobtrusive-ajax.js_中的第115行?還有一件事:'.live()'在jQuery 1.7中被棄用,並在jQuery 1.9中被刪除。改用'.on()'。 – Regent 2014-10-30 10:26:53

+0

@Regent這是第115行的調用(「a [data-ajax = true]」)。live(「click」,function(evt)。我應該試着從最新的jquery.unobtrusive-ajax.js任何CDN – rumi 2014-10-30 10:28:56

+1

好吧,有趣的...只需用'.on()'替換'.live()'(如果是動態元素,使用'$(document).on('click','a [data- ajax = true]「,函數(evt){'或更好的下載_unobtrusive-ajax.js_ – Regent 2014-10-30 10:32:47

回答

3

.live()在jQuery 1.7中被棄用,並在jQuery 1.9中被刪除。您可以使用.on()代替:

$("a[data-ajax=true]").on("click", function (evt) { 

或者,如果元素被動態地添加:

$(document).on('click', "a[data-ajax=true]", function (evt) { 

注:即使有可能修復不顯眼,ajax.js所有這些問題,將會更好地下載新版本,並解決所有這些問題(當然,如果這個版本存在的話)。

+0

我也有舊版本,我必須通過NuGet刪除舊的ajax包並安裝新的。可能會被緩存,即使在我替換了這些文件之後,它仍然被緩存在瀏覽器中。 – 2015-01-07 18:59:45

相關問題