好的,所以我写了一些JQuery,用于在用户添加额外内容时更新价格。 Booster Seats有一个代码块,Child Seats有一个代码。
这是一个,所以你可以看到我到底做了什么:
$('.boostseat').change(function() {
//sets the var id as the id of the select box
var id = this.id;
//sets this as the value of the select box
numberofboostseat = $(this).val();
//shows a confirmation message
$('#boostseatadd-'+id).show();
//this handles if an item is removed, so that the value doesn't reset
if (typeof(boosttotal) != "undefined" && boosttotal !== null) {
price = $("#hiddenprice").val() - boosttotal;
}else{
price = $("#hiddenprice").val();
}
//number of days you hire it for cariable
numofdays = "<?php echo $length->days; ?>";
if (numofdays > 4){
//alert ("boost if1");
boostcost = Number(20);
}else if ((numberofboostseat == 1 || numberofboostseat == 0) && (numberofchildseat == "undefined" || numberofchildseat == 0)){
//alert ("boost if2");
boostcost = Number(3) * Number(0);
}else if (numofdays < 1){
//alert ("boost if3");
boostcost = Number(3) * Number(1);
}else{
//alert ("boost if4");
boostcost = Number(3) * Number(numofdays);
}
// determines final price
boosttotal = Number(numberofboostseat) * Number(boostcost);
//more varaibles
newprice = Number(price) + Number(boosttotal);
//updates hiddden fields
$("input#hiddenboostprice").val(boosttotal);
$("input#hiddenboostnum").val(numberofboostseat);
$("input#hiddenprice").val(newprice);
oldnumofboost = $("input#hiddenboostnum").val(numberofboostseat);
//updates the HTML (Live Price Update) as decimal
$('#'+id).html("€" + newprice.toFixed(2));
});
});
我试图对它进行评论以使其更清晰。还有另一大块代码可以处理儿童座位。
我的问题是第一个儿童座椅 OR 加速座椅是免费的。
我试过了:
}else if ((numberofboostseat == 1 || numberofboostseat == 0) && (numberofchildseat == "undefined" || numberofchildseat == 0)){
如上所示,变量boostcost计算座位成本。另一块代码,childseat也有我可以使用的全局变量,类似于这些。
任何人都可以提出if语句,以便有效地让第一个孩子或助推器座位免费吗?
答案 0 :(得分:1)
我在变量之后向变量添加.discount = true
以防止姐妹变量也被减少。这样,numberofchildseat或numberofboostseat将以1折扣,但绝不会同时折扣。只要未设置.discounted
,javascript就会将其评估为false
。
if(!numberofchildseat.discounted && numberofboostseat > 0){
numberofboostseat--;
numberofboostseat.discounted = true;
}
if(!numberofboostseat.discounted && numberofchildseat > 0){
numberofchildseat--;
numberofchildseat.discounded = true;
}