1

我正在开发一个 b2b 版本的 magento 商店。因此,客户只能看到产品列表和输入字段。在更改输入字段时,将设置一个 ajax 调用来更新购物车。

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

这是ajax调用:

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

在我的购物车侧边栏中,我有一个 div 将设置为 display: block while an ajax call is running。

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

$(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

4

0 回答 0