好的,所以我昨天问了这个question,并根据我指出的方向进行了修改。当列表中有项目时,它按照我想要的方式工作,但是当它为0时,它会变为假,所以或者没有任何东西。当项目计数为0时,我不需要它显示0.00我知道0 = false这就是为什么或开始。任何帮助/解决方法?
var dropResult;
$(function (){
$(".t").click(function(){
dropResult = $("input[name=drop]:checked").val();
dropCalculate();
});
});
function dropCalculate() {
var pricesObj = {
'0':0,
'1':450
};
var dropAmount = $(".itemadd", "#items").length;
$("#dropAmount").html("Total: " + dropAmount);
if (dropResult == 1) {
dropTotal = (pricesObj[dropAmount] * dropAmount) || 450 + (150 * dropAmount - 150);
$("#dropPrice").html("Price Total: $" + dropTotal.toFixed(2));
}else {
dropTotal = (pricesObj[dropAmount] * dropAmount / 2) || 225 + (75 * dropAmount - 75);
$("#dropPrice").html("Price Total: $" + dropTotal.toFixed(2));
}
}
答案 0 :(得分:1)
var dropResult;
$(function (){
$(".t").click(function(){
dropResult = $("input[name=drop]:checked").val();
dropCalculate();
});
});
function dropCalculate() {
var dropAmount = $(".itemadd", "#items").length;
$("#dropAmount").html("Total: " + dropAmount);
if (dropResult == 1 && dropAmount > 0) {
dropTotal = 450 + (150 * (dropAmount -1));
$("#dropPrice").html("Price Total: $" + dropTotal.toFixed(2));
}else if (dropAmount > 0) {
dropTotal = 225 + (75 * (dropAmount -1));
$("#dropPrice").html("Price Total: $" + dropTotal.toFixed(2));
}else {
$("#dropPrice").html("Price Total: $" + (0.00).toFixed(2));
}
}
答案 1 :(得分:1)
对于您不会立即遇到问题但可能会改进代码设计的问题,您可能会在Code Review Stack Exchange得到更好的回复。
以下代码应该与示例中的代码做同样的事情,但我认为它更具可读性。对于此用例而言,对象似乎不是必需的,但将来可能会有用。
同样,我应用了DRY Principle,这次我删除了Magic Numbers(代码中的数字没有明确的含义)。
var dropResult;
$(function (){
$(".t").click(function(){
dropResult = $("input[name=drop]:checked").val();
dropCalculate(450);
});
});
function dropCalculate(fullPrice) {
var halfPrice = fullPrice / 2,
quarterPrice = halfPrice / 2,
dropAmount = $(".itemadd", "#items").length,
finalPrice = 0.00;
if(dropAmount > 0){
if (dropResult === 1) {
finalPrice = fullPrice; //the rest of this line was not necessary, as dropAmount - 1 is always 0 here.
} else {
finalPrice = halfPrice + (quarterPrice * (dropAmount - 1));
}
}
$("#dropAmount").html("Total: " + dropAmount);
$("#dropPrice").html("Price Total: $" + finalPrice.toFixed(2));
}