附加值而不是计算值

时间:2015-09-23 11:46:27

标签: jquery

当我点击加号图标时,

从第二次点击开始,价格正在计算,数量和价格被错误地计算

这是我的代码

$(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;
});

你能告诉我如何解决这个问题吗?

http://jsfiddle.net/bxbnkq64/8/

2 个答案:

答案 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;
});