我有一个购物篮,以及一些用于实时更新内容和总和的javascript方法。 使用以下方法完美地同步javascript更新数量和总和:
$('#add-to-basket select').selectbox();
$('#contents select').selectbox().change(function (e) {
var product = $(this).parents('.product');
var ppu = product.find('.ppu').val();
product.find('.price .wrapper .value').text($(this).val() * ppu);
var total = 0;
$('.product .price .value').each(function (index, value) {
total += +$(value).text();
});
var form = $(this).parents('form');
form.ajaxSubmit(function () {
});
$('#total .value').text(total);
});
但'drop basket from basket'方法并没有更新总和......我设法编写的代码:
$('.drop-item').click(function(e) {
e.preventDefault();
var form = $(this).parents(form);
var item = $(this).parents('li');
var total = 0;
如何修改它以便当有人从篮子中删除某些东西时,要自动更新的总和(不是通过点击刷新页面,它会给我注入一些异常情况)? 我希望自动更新,就像上面的更新篮子方法一样。
谢谢!
编辑:整个代码:
$('#add-to-basket select').selectbox();
$('#contents select').selectbox().change(function (e) {
var product = $(this).parents('.product');
var ppu = product.find('.ppu').val();
product.find('.price .wrapper .value').text($(this).val() * ppu);
var total = 0;
$('.product .price .value').each(function (index, value) {
total += +$(value).text();
});
var form = $(this).parents('form');
form.ajaxSubmit(function () {
});
$('#total .value').text(total);
});
$('#delivery #address a').qtip({
content: 'Vei putea reveni la coș dând click pe <span>Coșul Meu</span> în meniu.'
});
$('.drop-item').click(function(e) {
e.preventDefault();
var form = $(this).parents(form);
var item = $(this).parents('li');
var total = 0;
$('.product .price .value').each(function (index, value) {
total += +$(value).text();
});
$('#total .value').text(total);
item.remove();
form.ajaxSubmit(function() {});
if ($('#contents li').length < 1)
{
$('#basket').remove();
$('#basket-breadcrumbs').remove();
$('#main').append('<p class="message">Coșul tău este gol.</p>');
}
});
答案 0 :(得分:0)
如果你的意思是“总”变量没有改变,那是因为变量范围。 在函数内部声明一个变量时,它是函数的本地变量:只有函数可以访问它并操纵它。
所以,如果你想让总变量全局化(或更高的范围,意味着更多东西可以访问它):
$(function() {
var total = 0;
//code code code
});
现在,请确保稍后不会在var语句中添加前缀;如上所述,这会创建一个局部变量并覆盖全局变量。
((编辑:这是对变量范围是什么的一个半定义的解释。我建议你谷歌或搜索Stackoverflow以找到关于它的更多信息;它在JavaScript中是非常重要的事情))
如果您的意思是从某个地方删除某个元素,请使用jQuery's remove function。