我正在开发一个 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