jquery - Unobtrusive Ajax 在将 jQuery 更新到 1.9.0 后停止工作

标签 jquery asp.net-mvc-3 unobtrusive-ajax

我刚刚将 jQuery 和 jQuery UI 更新为: jquery-1.9.0.min.js 和 jquery-ui-1.9.2.min.js

而且...我所有不显眼的 Ajax 调用(Ajax.ActionLink、Ajax.BeginForm)都停止正常工作 - 它们在新页面中打开结果,而不是更新现有的 div。

当我的页面加载时,我在 Firebug 中收到此 javascript 错误:

enter image description here

代码当然没有改变,只是使用 Nuget 更新了 jQuery 脚本。

有人遇到过同样的问题吗?

最佳答案

更新:此问题已在最新的 NuGet 包中得到修复。我发布了另一个答案来反射(reflect)这一点。 https://stackoverflow.com/a/15539422/714309

<小时/>

jquery.unobtrusive-ajax.js中,找到并替换这四行:

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

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

  2. $("form[data-ajax=true] input[type=image]").live("click", function (evt) {

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

  3. $("form[data-ajax=true] :submit").live("click", function (evt) {

    $(document).on("click", "form[data-ajax=true] :submit", function (evt) {

  4. $("form[data-ajax=true]").live("提交", function (evt) {

    $(document).on("提交", "form[data-ajax=true]", function (evt) {

您还可以使用 WebGrease 生成新的 jquery.unobtrusive-ajax.min.js。 从命令提示符中,切换到您的解决方案文件夹并输入以下命令(假设您的项目文件夹名为 Web):

packages\WebGrease.1.3.0\tools\WG.exe -m -in:Web\Scripts\jquery.unobtrusive-ajax.js -out:Web\Scripts\jquery.unobtrusive-ajax.min.js

关于jquery - Unobtrusive Ajax 在将 jQuery 更新到 1.9.0 后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14391867/

相关文章:

asp.net - ASP.Net MVC 3 中的数据级别授权

更新到 Jquery 1.9.0 时 jquery.unobtrusive-ajax 插件损坏

jquery - 使用低调的 Ajax 举办全局事件

javascript - 导入 Bootstrap JavaScript、Webpack

javascript - 什么是任意数据/JSON?

javascript - 使用 JSON 对象中的数据进行动态货币转换

c# - 如何在我的 Controller 中管理可重复的文本?

asp.net-mvc-3 - MVC3 部分 View OutputCache 被父 View 覆盖

asp.net-mvc-3 - ASP.NET MVC 3 和 jquery.unobtrusive-ajax.min.js

javascript - 使用 Bootstrap 多选时 YUI 不会触发 on.change