用javascript求解数学函数
我已经为购物篮创建了这个函数。简单地说,我有x个产品,每个产品有(2个复选框+数量输入)。 第一个复选框为产品价格添加+3,第二个复选框为+8。就像(3+8+价格)*数量。在页面的末尾,我得到了总的结果(比如product1+product2…等等) 问题是:如果我发布带有新数量的表单,然后返回页面,我会得到默认结果(总价)(当然,选中复选框+PHP的新数量) 以下是我的功能:用javascript求解数学函数,javascript,php,jquery,math,Javascript,Php,Jquery,Math,我已经为购物篮创建了这个函数。简单地说,我有x个产品,每个产品有(2个复选框+数量输入)。 第一个复选框为产品价格添加+3,第二个复选框为+8。就像(3+8+价格)*数量。在页面的末尾,我得到了总的结果(比如product1+product2…等等) 问题是:如果我发布带有新数量的表单,然后返回页面,我会得到默认结果(总价)(当然,选中复选框+PHP的新数量) 以下是我的功能: $(function(){ var item_prices = 0; var total_item_p
$(function(){
var item_prices = 0;
var total_item_prices = 0;
var total_unique_item_prices = 0;
var total_price = 0;
$.each($('*[data-item-price]'), function(index, element) {
var item_price = $(element).data("item-price");
total_unique_item_prices = parseInt($('[data-total]').html()) + item_price;
total_price = total_unique_item_prices;
$('[data-total]').html(total_unique_item_prices);
})
$.each($('*[data-item-price]'), function(index, element) {
var item_price = $(element).data("item-price");
var price_of_options = 0;
var quantity = parseInt($(element).find('input[data-quantity]').val());
$.each($(element).children().find("[data-price]"), function(index, element2) {
$(element2).click(function(){
var actual_price = parseInt($('[data-total]').html());
var actual_item_price = parseInt($(element).find('[data-item-total]').html());
var price = $(element2).data("price");
if ($(element2).is(':checkbox') && $(element2).is(':checked')) {
price_of_options += price;
$(element).find('[data-item-total]').html(actual_item_price + (price * quantity));
$('[data-total]').html(actual_price + (price * quantity));
}
else {
price_of_options -= price;
$(element).find('[data-item-total]').html(actual_item_price - (price));
$('[data-total]').html(actual_price - (price * quantity));
}
})
})
$(element).find('input[data-quantity]').bind('keyup mouseup', function () {
var new_quantity = parseInt($(element).find('input[data-quantity]').val());
var quantity_dif = new_quantity - quantity;
var actual_price = parseInt($('[data-total]').html());
if (quantity_dif > 0) {
quantity_dif = new_quantity - quantity;
$(element).find('[data-item-total]').html((item_price + price_of_options) * new_quantity);
$('[data-total]').html(actual_price + ((item_price + price_of_options) * quantity_dif));
}
else {
quantity_dif *= -1;
quantity = parseInt($(element).find('[data-quantity]').val());
$(element).find('[data-item-total]').html((item_price + price_of_options) * new_quantity);
$('[data-total]').html(actual_price - ((item_price + price_of_options) * quantity_dif));
}
quantity = parseInt($(element).find('[data-quantity]').val());
})
})
})
正如我所说,代码正在工作:只是在重新加载网页时不起作用。
我不是英国人,请宽容一点。我正在尽力澄清 这和“用javascript解决数学函数”有什么关系?我很确定这是关于数学的,因为我们需要解决一些关于加法、减法、乘法的问题。(简单的数学)也许我错了。既然你说你的代码正在工作,除非导航发生(重新加载、返回),我认为浏览器缓存或javascript初始化是罪魁祸首,而不是错误的数学。1。生成html时,不要忘记为要添加的元素设置checked=“checked”;2.显示后运行计算功能(已加载/准备就绪);3.这是一个非常简单的解决方案,但这不是真正的浏览器缓存或Js init问题(我不这么认为),我真的在想一个数学错误。可能是错误的数学,因为我发现了一个问题,当你滥发复选框(检查小提琴)。顺便谢谢你的帮助^-^