以下是我正在处理的代码。如您所见,我创建了一个名为'my_string'的变量,默认情况下,我想调用get_result_data()函数并将任何返回数据存储在变量'my_string'上。然后,一旦用户单击$('#button')
,我想显示存储的数据。但问题是,我总是得到一个不明身份的错误。
function get_result_data(){
$.ajax({
type: 'POST',
url: 'ajax/get_result.php'
}).done(function(data){
return data;
});
}
var my_string = get_result_data();
$('#button').click(function(){
alert(my_string);
});
答案 0 :(得分:2)
您的get_result_data
函数没有返回任何内容,这就是您未定义的原因。相反,请尝试在ajax回调中设置my_string
:
var my_string;
function get_result_data(){
$.ajax({
type: 'POST',
url: 'ajax/get_result.php'
}).done(function(data){
my_string = data;
});
}
$('#button').click(function(){
// MY_STRING MIGHT BE UNDEFINED
alert(my_string);
});
也许是一种更好的方法:
var response = $.ajax({
type: 'POST',
url: 'ajax/get_result.php'
});
$('#button').click(function(){
response.done(function (data) {
alert(data);
});
});
答案 1 :(得分:0)
您应该使用回调方式来执行此操作。
function get_result_data(callback){
$.ajax({
type: 'POST',
url: 'ajax/get_result.php'
}).done(function(data){
callback(data);
});
}
get_result_data(function(my_string){
$('#button').click(function(){
alert(my_string);
});
});
答案 2 :(得分:0)
以这种方式工作
function get_result_data(){
var res;
$.ajax({
type: 'POST',
url: '/kuke/userBlog/getTudouVideoInf',
async:false,
data : {
"temp" : "1",
"video_id" : "111"
},
error : function(textStatus,errorThrown) {
alert("textStatus:"+textStatus+" errorThrown:"+errorThrown);
}
}).done(function(data){
res=data;
});
return res;
}