我已经为这个问题苦苦挣扎了一段时间了。 我安装了OpenCart 1.5.2.1,在结帐阶段,我有几个步骤必须在后台完成。 当这种情况发生时,我正在尝试显示一个简单的 ajax-loader.gif,我希望它在页面完成处理后消失。 目前,ajax加载器.gif没有显示...
这是我的javascript:
var el = $("#confirm .checkout-heading").addClass("loading");
$.ajax({
url: 'checkout/checkout.php',
success: function(data) {},
failure: function() {},
complete: function() {
el.removeClass("loading");
}
});
样式表:
#confirm .checkout-heading {
background: #fff;
}
#confirm .checkout-heading.loading {
background-image: url('../image/ajax-loader.gif');
background-position: 98% 50%;
background-repeat: no-repeat;
}
页:
<div class="breadcrumb">
<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
<?php } ?>
</div>
<h1><?php echo $heading_title; ?></h1>
<div class="checkout">
<div id="checkout">
<div class="checkout-heading"><?php echo $text_checkout_option; ?></div>
<div class="checkout-content"></div>
</div>
<?php if (!$logged) { ?>
<div id="payment-address">
<div class="checkout-heading"><span><?php echo $text_checkout_account; ?></span></div>
<div class="checkout-content"></div>
</div>
<?php } else { ?>
<div id="payment-address">
<div class="checkout-heading"><span><?php echo $text_checkout_payment_address; ?></span></div>
<div class="checkout-content"></div>
</div>
<?php } ?>
<?php if ($shipping_required) { ?>
<div id="shipping-address">
<div class="checkout-heading"><?php echo $text_checkout_shipping_address; ?></div>
<div class="checkout-content"></div>
</div>
<div id="shipping-method">
<div class="checkout-heading"><?php echo $text_checkout_shipping_method; ?></div>
<div class="checkout-content"></div>
</div>
<?php } ?>
<div id="payment-method">
<div class="checkout-heading"><?php echo $text_checkout_payment_method; ?></div>
<div class="checkout-content"></div>
</div>
<div id="confirm">
<div class="checkout-heading">Confirm Purchase</div>
<div class="checkout-content"></div>
</div>
</div>
任何帮助,不胜感激。 提前谢谢。
有三个可能的原因:
-
您正在尝试在 DOM 准备就绪之前获取元素(使用 $(document).ready));
-
Ajax 执行速度太快,因此您无法观察加载程序。
-
你在使用css/image时遇到了麻烦。要测试它,请摆脱javascript并查看它是否适用于静态内容(手动添加类"加载")。
在下面的示例中,我将 ajax 的执行推迟了 2 秒:
http://jsfiddle.net/webdevel/Dd3B7/1/