当我点击加号图标时,
从第二次点击开始,价格正在计算,数量和价格被错误地计算
这是我的代码
$(document).on('click', '.icon-plus', function(event)
{
var idval = $(this).parents('.lastItm_Wrap').first().attr('id');
var currentval = $(this).closest('div').find('.QtyInput').attr('value');
if (currentval === '')
{
currentval = 0;
}
var currentQuantity = parseInt(currentval + 1);
if (currentQuantity == 0)
{
currentQuantity = 1;
}
var currentSellprice = parseFloat($("#" + idval).find('.prd_title h3').data('sellprice'));
$(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text(parseFloat(currentSellprice * currentQuantity).toFixed(2));
$(this).closest('div').find('.QtyInput').attr('value', currentQuantity);
$(this).closest('div').find('.QtyInput').val(currentQuantity);
event.stopImmediatePropagation();
event.preventDefault();
return false;
});
你能告诉我如何解决这个问题吗?
答案 0 :(得分:0)
当你计算currentQuantity
时,你会得到两个字符串(“1”和“1”,“11”和“1”等)。将代码更改为此。
var currentQuantity = parseInt(currentval) + 1;
它应该有用。
答案 1 :(得分:0)
你必须把+1放在parseInt之外,否则它会解析1 + 1作为字符串......这将是11:)
请参阅http://jsfiddle.net/bxbnkq64/10/
$(document).on('click', '.icon-plus', function(event)
{
var idval = $(this).parents('.lastItm_Wrap').first().attr('id');
var currentval = $(this).closest('div').find('.QtyInput').attr('value');
if (currentval === '')
{
currentval = 0;
}
var currentQuantity = parseInt(currentval)+ 1;
if (currentQuantity == 0)
{
currentQuantity = 1;
}
var currentSellprice = parseFloat($("#" + idval).find('.prd_title h3').data('sellprice'));
$(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text(parseFloat(currentSellprice * currentQuantity).toFixed(2));
$(this).closest('div').find('.QtyInput').attr('value', currentQuantity);
$(this).closest('div').find('.QtyInput').val(currentQuantity);
event.stopImmediatePropagation();
event.preventDefault();
return false;
});