var a = 0;
$.ajax({ type: "get",
dataType: "json",
async: true(为了测试,这里必须是true)
url: "student_toadd",
data:{stunum:10},
success:function(data){ a = 10;}
});
alert(a); ajax
ajax的返回值是10,但是弹出的是0,因为没在回调里面,怎么在$.ajax({里面写闭包函数,这样我可以直接把函数值返回给a
没看明白 您想干啥
a的值是在回调函数执行以后赋值的,而alert(a);的执行在
success:function(data){ a = 10;}
});
这个之前。
ajax的执行顺序是发送了请求到服务器以后,接着执行后面的代码,等待服务器返回以后,才开始执行回调函数里面的内容的,将代码改为如下,应该能满足你的要求。
var a = 0;
$.ajax({ type: "get",
dataType: "json",
async: true(为了测试,这里必须是true)
url: "student_toadd",
data:{stunum:10},
success:function(data){ a = 10;
alert(a);
}
});
只要是等待服务器返回以后才能处理的操作都要放到回调函数里面处理。
希望对你有帮助。
这个是没有任何问题的。出现这种情况是你的ajax出现了问题。可以在success中试着弹出。楼上正解。
楼上几位朋友没有明白楼主的意图!
我也有楼主这样的想法(即在ajax异步执行的情况下,利用闭包解决回调问题)所以搜索到这个帖子里来啦!!