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

Javascript 单击元素时从变量中减去?,javascript,jquery,Javascript,Jquery,情况: 大家好,我完全不知道该怎么办。我不熟悉Javascript和Jquery,正在尝试构建一个功能性捐赠表单。我有三个文本框——每个标签都是“购物车项目”。每个代表一个基金,有人可以捐赠。文本框是设置好的,这样他们就可以输入他们想捐赠多少的美元金额。然后,在底部,有一个calculateSum函数,它将三个文本框中的值相加。下面是我用来做这件事的代码: 文本框: <input type="text" id="donation" class="donation form-control"

情况: 大家好,我完全不知道该怎么办。我不熟悉Javascript和Jquery,正在尝试构建一个功能性捐赠表单。我有三个文本框——每个标签都是“购物车项目”。每个代表一个基金,有人可以捐赠。文本框是设置好的,这样他们就可以输入他们想捐赠多少的美元金额。然后,在底部,有一个calculateSum函数,它将三个文本框中的值相加。下面是我用来做这件事的代码:

文本框:

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

总计显示在id为#total的span标记中:

0.00
下面是使整个函数工作的代码:

<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>

$(文档).ready(函数(){
//遍历每个文本框并添加keyup
//触发总和事件的处理程序
$(“.generation”)。每个(函数(){
$(this).keyup(function(){
计算um();
});
});
});
函数calculateSum(){
var总和=0;
//遍历每个文本框并添加值
$(“.generation”)。每个(函数(){
//仅当值为number时添加
如果(!isNaN(this.value)&&this.value.length!=0){
sum+=parseFloat(此.value);
}
});
//.toFixed()方法将最终总和舍入到小数点后2位
$(“#total”).html(sum.toFixed(2).replace(/(^\d{1,3}\d{3})(?=(?:\d{3})+(?:$)/g,$1');
}
我还添加了通过单击右侧的“X”来删除“购物车”中的项目/资金的选项。用于实现此目的的代码:

    <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>

$('.dr')。单击(函数(){
$(this.parent().parent().fadeOut(1000,function(){
$(this.remove();
});
});
您可以看到它在这里工作:

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

我真的不知道该怎么做。我认为它必须是以下脚本的一部分:

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

$('.dr')。单击(函数(){
$(this.parent().parent().fadeOut(1000,function(){
$(this.remove();
});
});

我不太确定。就像我说的,我对这东西不熟悉。提前感谢您的帮助

删除元素后调用calculateSum函数

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

$('.dr')。单击(函数(){
$(this.parent().parent().fadeOut(1000,function(){
$(this.remove();
计算um();
});
});

FYI如果您在页面上加载了两个版本的jQuery,请删除带有1.4.4的标记+1,这比我开始实际减去值要容易得多。
<script>
$('.dr').click(function() {
    $(this).parent().parent().fadeOut( 1000, function() { 
        $(this).remove();
        calculateSum();
    });
});
</script>