ASP.NET MVC 4:不能修改jQuery的不显眼的Ajax(ASP.NET MVC 4: c

2019-08-17 12:35发布

使用ASP.NET MVC 4NuGet管理包。

升级后jQuery 1.9.1通过NuGet ,我开始越来越JavaScript关于去除误差live()函数jQuery 1.9.x

我按F5从VS.NET调试模式下运行,进入登录页面,并得到如下:

发现这个StackOverflow的答案: https://stackoverflow.com/a/14512797并提出了4名更改~\Scripts\jquery.unobtrusive-ajax.js

~\Scripts\jquery.unobtrusive-ajax.js

    $(document).on("click", "a[data-ajax=true]", function (evt) {
       ...
    });
    $(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
       ...
    });
    $(document).on("click", "form[data-ajax=true] :submit", function (evt) {
       ...
    });
    $(document).on("submit", "form[data-ajax=true]", function (evt) {
       ...
    });

我也物理删除jquery.unobtrusive-ajax.min.js和使用WebGrease 1.3.0从我的更新,重新生成~\Scripts\jquery.unobtrusive-ajax.js

然而,出于某种原因,我的改变不使用.live()函数没有作用。 我试图停止IIS快递8.0网站(本地主机:63798)在其下VS.NET运行MVC应用程序。

也尝试过做一个建设 - >清理解决方案,建设 - >按F5在调试模式下再次运行前重新生成解决方案。

如果有人已经经历过这一点,并有任何见解,我将非常感激。 先感谢您。

Answer 1:

在微软jQuery的不显眼的Ajax包已被固定在2.0.30116.0版本来解决这个问题。 该呼叫.live()改为使用.on()

尝试升级NuGet包来获取最新版本。

但是,要使用jQuery的迁移包的建议是一个很好的发现在那些不与jQuery的1.9+的变化兼容其他插件或您自己的代码的问题。



Answer 2:

live()已在jQuery的1.9有一些其他功能一起被除去。

如果您需要为删除功能的支持,您还需要添加的jQuery迁移文件,其中包含已删除的功能。

添加引用类似下面应该包括所有你需要的功能:

<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>

在调试模式迁移的文件也将增加警告到控制台通知你,当你使用任何删除的功能。 这将帮助你在你沿着通往慢慢取代他们最终你能删除迁移文件引用,只用jQuery的1.9和超越。

查看迁移到jQuery的1.9的所有细节如下jQuery的博客文章。

  • jQuery的核心1.9升级指南
  • jQuery的1.9和2.0 - TL; DR版
  • jQuery的1.9.1发布
  • jQuery的迁移1.1.1发布
  • 迁移在GitHub上:迁移旧的jQuery代码到jQuery的1.9+


文章来源: ASP.NET MVC 4: cannot modify jQuery Unobtrusive Ajax