0

我有以下代码,

$(".delete.red").live("click", function () {
    var self = $(this);
    var loadUrl = $(this).attr('href');
    alert("clicked");
    //var interestParents = self.parents('div:eq(4)').attr("id");
    $.ajax({
        type: "POST",
        url: loadUrl,
        dataType: "json"
    }).success(function (msg) {
        alert(msg);
        self.parent().parent().parent().parent().parent().parent().remove();
        $(".selected strong").text(msg.icount)

    });
    return false;
});

这段代码在点击链接时会做什么,它会向点击的链接 href 发送请求,然后它应该找到该链接的最外层父级并将自己从标记中删除。

但是请求没有到达done()我现在得到的功能反馈它几乎就像它没有被调用,这看起来很奇怪,因为当我查看网络选项卡时,我可以看到链接 href 已被访问,我可以见200 OK回应。

发生什么事了?

4

1 回答 1

8

使作为参数传递的选项对象的成功部分

$.ajax({
        type: "POST",
        url: loadUrl,
        dataType: "json",
        success: function (msg) {
            alert(msg);
            self.parent().parent().parent().parent().parent().parent().remove();
            $(".selected strong").text(msg.icount);
        }
});

根据网站,成功回调已在 jQuery 1.8 中被弃用

弃用通知: jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调将在 jQuery 1.8 中弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

据该网站称,live方法也已被弃用

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。

于 2012-11-19T10:55:26.160 回答