JQuery如果,第一个自由逻辑

时间:2013-03-11 21:34:40

标签: jquery

好的,所以我写了一些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("&euro;" + newprice.toFixed(2));


    });

});

我试图对它进行评论以使其更清晰。还有另一大块代码可以处理儿童座位。

我的问题是第一个儿童座椅 OR 加速座椅是免费的。

我试过了:

}else if ((numberofboostseat == 1 || numberofboostseat == 0) && (numberofchildseat == "undefined" || numberofchildseat == 0)){

如上所示,变量boostcost计算座位成本。另一块代码,childseat也有我可以使用的全局变量,类似于这些。

任何人都可以提出if语句,以便有效地让第一个孩子或助推器座位免费吗?

1 个答案:

答案 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;
   }