未捕获的TypeError:undefined不是函数jquery.unobtrusive-ajax.js

时间:2014-10-30 10:20:05

标签: jquery asp.net-mvc asp.net-mvc-4

在我的mvc 4 Web应用程序中,我收到以下错误“未捕获的TypeError:undefined不是函数jquery.unobtrusive-ajax.js:115”

在这一行我们有

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

我发现很多人都得到同样的错误并阅读帖子。几乎所有人都建议重新排序jquery和其他脚本,我已经尝试了很长时间,但似乎没有任何东西可以消除这个错误。

目前我在head部分按照以下顺序拥有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>

1 个答案:

答案 0 :(得分: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) {

注意:即使可以在 unobtrusive-ajax.js 中修复所有这些问题,最好下载更新版本,修复所有这些问题(如果此版本存在的话) ,当然)。