在product.tpl中运行最新版本的OpenCart,底部的javascript中有以下代码行:
$('#cart-total').html(json['total']);
这一行更新了购物车总额而无需重新加载页面,因此$('#cart-total').html(json['total']);
输出<span id="cart-total">6 item(s) - $693.50</span>
但是,我已经定制了cart.tpl模块和cart.php语言文件,以稍微不同的方式显示购物车输出,以便输出如下:
<span id="cart-total">
<div class="mini-cart-items">6 Items</div>
<div class="mini-cart-total">Your total is $693.50</div>
</span>
因此,出于某种原因,当$('#cart-total').html(json['total']);
更新购物车总数时,它会移除我在其中的两个div,只显示没有我设置的格式的信息。
是否可以更新javascript以便它不会删除信息?
如果上下文需要,我可以提供更多代码。
EDTI:这是$('#cart-total').html(json['total']);
所在的整个javascript部分:
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
$('#cart-total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
当前代码,编辑如下:
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
console.log(json['total']);
var output = $(json['total']).text().split('-');
$('.mini-cart-items').html(output[0]);
$('.mini-cart-total').html('Your total is ' + output[1]);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
答案 0 :(得分:2)
如果json['total']
只包含数字金额,那么您可以尝试:
$('#cart-total .mini-cart-total').empty().html('Your total is $' + json['total']);
根据你的编辑:
var output = $(json['total']).text().split('-');
$('.mini-cart-items').html(output[0]);
$('.mini-cart-total').html('Your total is ' + output[1]);
的 DEMO 强> 的
答案 1 :(得分:2)
我也不知所措,我找到了如何解决问题。
如何工作json ['total']我在目录/ controller / checkout / cart.php中找到
$json['total'] = sprintf($this->language->get('text_items') .......
但它并不那么重要, 'text_items'放在两个地方
catalog/language/russian/module/cart.php
和
catalog/language/russian/checkout/cart.php
非常有趣,首先使用模块文件,结帐文件与json一起使用
这是我的'text_items',我把它放在两个语言文件中
// Text
$_['text_items'] = 'In cart: <div class="header-product">%s product</div> summ %s';
答案 2 :(得分:0)
以上作品,你总能给你的div一个id
<div id="mini-cart-total" class="mini-cart-total">Your total is $574.00</div>
在你的脚本中:
$('#mini-cart-total').html(json['total']);
在一天结束时,$('#id')。html(str)用你传入的内容替换id中的所有html。
答案 3 :(得分:0)
我已经解决了这个问题
setTimeout(function(){
$('#cart-total').html('Your total is $' + json['total']);
}, 100);
只需添加延迟