我是学习者,我遇到了问题。首先我做了一个变量。然后使用ajax函数我有一个json数据。然后我解析它并尝试将json数据传递给名为 var invoice_details 的变量。然后点击事件我试图看到变量,但只显示 0 。但我的console.log(parsed);
命令在ajax函数下显示我的控制台日志中的json数据。但我的动作函数console.log(invoice_details);
显示 0 。我怎么了?
//function order started
var invoice_details;
function order(val1){
var order_no=getQueryVariable("order_number");
//AJAX START
$.ajax({
url: "/anamika/function/order.php",
type: "POST",
data: {item_code: item_added, paymentdetails: val1, order_no: order_no },
success:function(data, textStatus, jqXHR)
{
//console.log(data);
var parsed = JSON.parse(data);
var invoice_details = parsed;
console.log(parsed);
},//Success finished
error:function(jqXHR, textStatus, errorThrown)
{
} //Error finished
}) //AJAX FINISHED
}
//function order finished
order('91');
$("#invoice_pay").live("click", function (event) {
console.log(invoice_details);
})
答案 0 :(得分:4)
当你在var invoice_details = parsed;
回调中声明success
时,实际上是在创建一个新的局部变量,它只存在于success
回调的范围内,因此这个新的局部变量是获取您的数据,而不是您正在执行console.log的全局数据。
您已经在外部定义了该变量,因此只需删除var
声明并执行:
invoice_details = parsed;