我有以下功能:
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)返回“默认”。
我知道问题是变量的范围,但不知道如何或在哪里设置它,以便poGetPaymentOption函数调用获得正确的值(如果在运行之前未单击按钮,则为“默认”;“信用卡',如果单击按钮。)有人可以帮我吗?