Ajax 获得响应后成功函数未执行

Ajax success function not executing after getting response

以下是我的代码:

$(".simpleCart_shelfItem button").click(function() {
            $(this).prop('disabled', true);
            $(this).addClass('disabled');
            $(this).html("Adding &nbsp;&nbsp;<i class='icon-spinner9 spin'></i>");

            var action = "add";
            var queryString = "action="+action+"&pid="+this.value;

            $.ajax({
                    url: "add_cart",
                    data: queryString,
                    type: "POST",
                    success:function(data){
                        if(data == 1)
                            {
                                $(this).prop('disabled', false);
                                $(this).removeClass('disabled');
                                $(this).html("Added In Cart");
                            }
                    },
                    error:function (){}
                });
        });

我在一个页面上有 6 个产品。如果用户单击特定产品的“添加到购物车”按钮,则此代码将执行并向服务器发送请求。

代码执行良好,我什至收到了响应。

问题是,即使在获得响应后,成功函数也没有执行,即这段代码没有执行..

$(this).prop('disabled', false);
$(this).removeClass('disabled');
$(this).html("Added In Cart");

它只执行输入点击功能时的代码,即此代码:

$(this).prop('disabled', true);
$(this).addClass('disabled');
$(this).html("Adding &nbsp;&nbsp;<i class='icon-spinner9 spin'></i>");

然后它冻结在上面的代码上。

成功函数没有被执行。

据我所知,当您在 ajax 调用中声明函数时,被单击元素的引用将丢失。

因此,将 ajax success 函数中的 $(this) 调用替换为 $(".simpleCart_shelfItem button").

我认为这会奏效。