如何在多个ajax调用运行时显示提示?

时间:2013-07-23 13:10:32

标签: jquery ajax magento

我正在研究一个洋红色商店的b2b版本。 因此,客户只能看到产品和输入字段列表。 在更改输入字段时,将设置ajax-call以更新购物车。

现在我想在购物车边栏中显示一条提示,只要ajax调用正在运行,购物车就会更新。

这是ajax电话:

$.ajax
({
    url: url,
    type: 'POST',
    data: qty,
    success: function(response)
    {
        $('.block-cart').replaceWith($('.block-cart', response));
    }
});

并且在我的购物车边栏中我有一个div,它将被设置为显示:当ajax调用正在运行时阻塞。

我使用以下代码执行此操作:

$(document).ajaxStart(function()
{
    $('.hint').css({'display':'block'});
});

$(document).ajaxStop(function()
{
    $('.hint').css({'display':'none'});
});

但它不可靠。有时div显示有时不...

我希望你能理解我的问题并且让自己明白;)

谢谢smo


更新

我已经开始行动了。我在另一个if语句中有一个丢失的div。现在它有效。但是ajaxStop很早就被解雇了。即使有些帖子正在运行,提示也会消失。我试过了ajaxComplete而没有其他任何影响。

我会保持关注,让你们最新。


解决

你好。

我找到了一种溶剂,对我有用,我想和你分享。

我只是将ajax放入队列中。这是代码。

$(document).queue(function()
{
    $('.hint').css({'display':'block'});

    $.ajax
    ({
        url: url,
        type: 'POST',
        data: qty,
        success: function(response)
        {
            $('.block-cart').replaceWith($('.block-cart', response));
            $(document).dequeue();
        }
    });
});

也许这会帮助其他人:) 到目前为止,谢谢,

SMO

0 个答案:

没有答案