我只是想做一个简单的功能来尝试更改功能,但并没有按我预期的那样进行:/

我正在尝试做的是:
1-选中成本复选框时,将成本分配为(cost1.checked?cost1 = 10:0)
2-选中复选框后,将给出复选框成本总和的结果。

我得到的问题是:[object HTMLInputElement] [object HTMLInputElement] [object HTMLInputElement]

这是小提琴:http://jsfiddle.net/p3zbm/

这是我的代码:

$('#cost1').click(function(){
if(this.checked){
var cost1 = 10;
}else{
cost1 = 0;
}
});
$('#cost2').click(function(){
if(this.checked){
var cost2 = 20;
}else{
cost2 = 0;
}
});
$('#cost3').click(function(){
if(this.checked){
var cost3 = 30;
}else{
cost3 = 0;
}
});
$('.costs').change(function(){
var result = cost1 + cost2 + cost3;
$('.total').text(result);
});


我知道这太简单了:

最佳答案

从函数中声明变量,然后尝试使用函数进行重新计算(以确保在需要时调用该函数)。

var cost1 = 0;
var cost2 = 0;
var cost3 = 0;
function recalculate()  {
    var result = cost1 + cost2 + cost3;
    $('.total').text(result);
}
$('#cost1').click(function(){
    cost1 = this.checked ? 10 : 0;
    recalculate();

});
$('#cost2').click(function(){
    cost2 = this.checked ? 20 : 0;
    recalculate();
});
$('#cost3').click(function(){
    cost3 = this.checked ? 30 : 0;
    recalculate();
});


jsFiddle

07-26 05:40