-3

我已经从 jQuery 1.7.1 更新到 1.10.2,现在 jquery.unobtrusive-ajax.js 中出现了以下问题:

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

问题在现场。它说不$("a[data-ajax=true]")接受方法或属性live

如何解决这个问题?我应该升级 jquer.unobtrusive-ajax.js 还是类似的东西?

4

4 回答 4

7

请阅读文档,live已删除并替换为.on()

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

document是容纳动态内容的容器。

于 2013-09-23T16:06:37.083 回答
3

了解 jQuery Migrate 插件也很好。它来自 jQuery 本身,可以直接从他们的GitHub获得。

该插件的目的是“简化从旧版本 jQuery 的过渡。该插件恢复了已弃用的功能和行为,以便旧代码仍然可以在 jQuery 1.9 及更高版本上正常运行。使用未压缩的开发版本来诊断兼容性问题,它将在控制台上生成警告,您可以使用这些警告来识别和修复问题。

来源:jQuery 下载页面

于 2013-09-23T16:12:22.973 回答
3

方法 .live 已在 1.7 版中被弃用并在以后删除,您应该使用 .on

检查文档:

http://api.jquery.com/live/

如果您使用依赖于 live 的插件,那么我将继续使用 1.7 版

于 2013-09-23T16:06:53.883 回答
1

使用.on()

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

请参阅.live()已在 1.7 版中弃用并在 1.9 中删除。

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。旧版本 jQuery 的用户应该使用 .delegate() 而不是 .live()。

于 2013-09-23T16:07:31.530 回答