Opencart - jQuery cart total update - 修改输出
Opencart - jQuery cart total update - amend output
运行最新版本的OpenCart,在product.tpl中,底部的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');
}
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]);
演示
我也遇到了麻烦,我找到了解决问题的方法。
如何在目录/控制器/结帐/购物车中找到 json['total'].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';
工作,好吧,你总是可以给你的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替换为您传入的内容。
我已经解决了这个问题
setTimeout(function(){
$('#cart-total').html('Your total is $' + json['total']);
}, 100);
只需添加延迟
- 在JavaScript中输出转义字符
- 在Safari执行javascript之前对其进行修改
- 如何在jQuery中将函数的输出分配给变量
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- Javascript,输出结果后页面不断刷新
- 为什么不是't此函数用于修改最终输出
- 修改此node.js代码以输出.wav而不是.mp4
- 修改输入中的数组,然后返回输出
- 使用 JavaScript 修改 BIRT 中的查询输出
- 编写脚本以输出修改后的 JavaScript
- Opencart - jQuery cart total update - 修改输出
- 捕获、修改并输出电子音频
- phantomjs render_multi_url.js修改输出文件名
- 构建,修改,输出Javascript数组
- 简单修改AJAX脚本,将返回的输出赋值,而不是打印到文本框中
- Ext JS 4.0修改视图不会修改浏览器中的输出.请帮助
- Grunt -修改输出文件名
- 使用jQuery动态修改提交表单上的输出警报内容
- 如何将不断变化的顺序输出修改为随机输出
- 为什么我得到错误的输出,当我修改以下Javascript对象代码