单击元素时从变量中减去?

时间:2014-09-12 17:11:12

标签: javascript jquery

情况: 嘿大家,我在这里完全失败了。我是Javascript和Jquery的新手,我正在尝试构建一个功能性的捐赠表单。我所拥有的是三个文本框 - 每个标签为" Cart Item"。每个代表一个人可以捐赠的基金。设置文本框,以便他们可以输入他们想要捐赠的金额。然后,在底部,有一个calculateSum函数,它总计了三个文本框中的值。这是我过去常用的代码:

文本框:

<input type="text" id="donation" class="donation form-control" placeholder="0.00" onkeydown="return isNumber(event);" onkeypress="return validateFloatKeyPress(this,event);" maxlength="13">

总计显示在范围为#total:

的范围标记中
<span id="total" onchange="numbersWithCommas()">0.00</span>

以下是使整个函数有效的代码:

<script>
$(document).ready(function(){

    //iterate through each textboxes and add keyup
    //handler to trigger sum event
        $(".donation").each(function() {

         $(this).keyup(function(){
              calculateSum();
         });
      });

    });

function calculateSum() {

        var sum = 0;
        //iterate through each textboxes and add the values
        $(".donation").each(function() {

            //add only if the value is number
            if(!isNaN(this.value) && this.value.length!=0) {
                sum += parseFloat(this.value);
            }

        });
        //.toFixed() method will roundoff the final sum to 2 decimal places
        $("#total").html(sum.toFixed(2).replace(/(^\d{1,3}|\d{3})(?=(?:\d{3})+(?:$|\.))/g, '$1,'));
    }
</script>

我还添加了删除&#34;购物车&#34;中的商品/资金的选项。点击&#34; X&#34;&#34;在右边。用于实现该目的的代码:

    <a href="#" class="dr" title="Remove item"><span class="glyphicon glyphicon-remove-circle"></span></a>

<script>
$('.dr').click(function() {
    $(this).parent().parent().fadeOut( 1000, function() { 
        $(this).remove();
    });
});
</script>

您可以在此处看到它:http://saulmarquez.com/test/cart-delete.html

问题: 如果我在文本框中键入一个值,然后从购物车中删除该项目(使用右侧的X按钮),则不会从购物车的总数中减去该值。我需要将它从总数中删除。

我真的不确定该如何去做。我认为它必须成为以下脚本的一部分:

<script>
$('.dr').click(function() {
    $(this).parent().parent().fadeOut( 1000, function() { 
        $(this).remove();
    });
});
</script>

我不太确定。就像我说的,我对这些东西不熟悉。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

删除元素

后调用calculateSum函数
<script>
$('.dr').click(function() {
    $(this).parent().parent().fadeOut( 1000, function() { 
        $(this).remove();
        calculateSum();
    });
});
</script>