私は次の機能を持っています:
function initPaymentBlock(bIdx) {
var paymentType = 'default';
if( $('#gc-apply-btn-'+bIdx).length ) {
$('#gc-apply-btn-'+bIdx).click( function() {
poApplyGiftCard(bIdx);
console.log("about to change payment type");
paymentType = 'credit card';
console.log("paymentType inside function: " + paymentType);
});
}
console.log("payment type: " + paymentType);
poGetPaymentOption(paymentType, 0, bIdx);
}
paymentType
変数は、最初のステートメント内で「デフォルト」に設定されています。内部のクリック機能では「クレジットカード」に変更。console.log
内部関数内でステートメントを実行すると、 が返されますcredit card
。内部関数のconsole.log
外側 (呼び出しの直前poGetPaymentOption
) は、'default' を返します。
問題は変数のスコープであることはわかっていますが、関数呼び出しが正しい値を取得するように変数を設定する方法や場所がわかりませんpoGetPaymentOption
(ボタンが実行される前にクリックされていない場合は「デフォルト」、「クレジット」)。ボタンをクリックするとカードが表示されます。) 誰か助けてくれませんか?