$ .ajax完成函数没有触发

时间:2012-11-19 10:49:00

标签: javascript ajax jquery

我有以下代码,

$(".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响应。

Waht是怎么回事?

1 个答案:

答案 0 :(得分: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()和   在jQuery 1.8中不推荐使用jqXHR.complete()回调函数。至   为最终删除代码做好准备,使用jqXHR.done(),   jqXHR.fail()和jqXHR.always()代替。

根据该网站,实时方法也已被弃用

  

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