0

このスクリプトでは、変数 AccompPricing にある 2: 258 に OptionPricing 変数を追加する必要があります。2:258+(var Price)のように書きたいのですが、うまくいきません。合計パッケージは、2 番目の選択肢の値に追加する必要があります。例: 258 + パッケージの価格 = 合計 #2.

// Collect Data & Prices To Update Dynamic Prices

var OptionPricing = {

'pack11049': 1049,
'pack21199': 1199,
'pack31199': 1199,
'pack41299': 1299,
'pack51449': 1449,
'pack61499': 1499,
'pack71549': 1549,
'pack81699': 1699,
'pack91799': 1799,
'pack101999': 1999,
'pack112499': 2499,
'pack122549': 2549


};


function checkOptions() {

var Price = 0;

for (Packs in OptionPricing) {

    if ($('#' + Packs).is(':checked')) {           
        Price += OptionPricing[Packs];
    }
}

return Price;
}
var AccompPricing = {
0: 0,
1: 129,
2: 258 + (var Price),
3: 1057,
4: 1856    
};

function checkAccomp() {

var Accomp = parseInt($('#howmany').val(), 10);

return AccompPricing[Accomp];
}

function updateTotal() {

var ThePrice = checkOptions() + checkAccomp();


$('#TotalPrice').text('$' + ThePrice + '.00');

}

$(function () { $('.DoPricing').click(updateTotal); });
4

1 に答える 1

1

AccompPricingパッケージ価格を再度追加するかどうかを知らせるために、オブジェクトのエントリにフラグが必要なようです。このようなもの:ライブコピー| ライブソース

// Collect Data & Prices To Update Dynamic Prices

var OptionPricing = {

    'pack11049': 1049,
    'pack21199': 1199,
    'pack31199': 1199,
    'pack41299': 1299,
    'pack51449': 1449,
    'pack61499': 1499,
    'pack71549': 1549,
    'pack81699': 1699,
    'pack91799': 1799,
    'pack101999': 1999,
    'pack112499': 2499,
    'pack122549': 2549
};

var AccompPricing = {
    0: {Price: 0,     Flag: false},
    1: {Price: 129,   Flag: false},
    2: {Price: 258,   Flag: true},
    3: {Price: 1057,  Flag: false},
    4: {Price: 1856,  Flag: false}
};

function checkOptions() {

    var Price = 0;

    for (Packs in OptionPricing) {

        if ($('#' + Packs).is(':checked')) {           
            Price += OptionPricing[Packs];
        }
    }

    return Price;
}

function checkAccomp() {

    var Accomp = parseInt($('#howmany').val(), 10);

    return AccompPricing[Accomp];
}

function updateTotal() {

    var PackagePrice, Accomp, ThePrice;

    PackagePrice = checkOptions();
    Accomp = checkAccomp();
    ThePrice = PackagePrice + Accomp.Price;
    if (Accomp.Flag) {
        ThePrice += PackagePrice;
    }

    $('#TotalPrice').text('$' + ThePrice + '.00');
}

$(function () { $('.DoPricing').click(updateTotal); });

サイドノート:上記で大文字のスタイルを使用しようとしました. 参考までに、JavaScript でグローバル以外の変数名に最初にキャップを付けた変数名を使用することは非常に珍しいことです。

于 2013-06-13T07:22:57.057 に答える