很抱歉,但我是jQuery的新手,所以这似乎是一个愚蠢的问题。
我有一个通用函数,它会调用$.get
从URL中检索一些数据,然后我想分配给变量,而不是控件。
这是我的功能,它已被简化以清除“噪音”......
function LoadFromURL(url) {
var response = "";
$("textarea#dump").val("url=" + url); // Shows the URL, no problem
$.get(url, "", function (data) {
response = data;
$("textarea#dump").val(response); // Shows the data, no problem
});
$("textarea#dump").val(response); // Shows NOTHING!
return (response);
}
问题是response
值非常高兴地在回调函数内部分配,但当它到达return (response)
时,变量为空。
答案 0 :(得分:0)
Shows NOTHING
行很快就会被解雇,无法使用。您必须从回调函数开始并从那里开始。你可以从回调中调用一个方法。
这样称呼:
var cb = function(data) {
$("textarea#dump").val(data);
}
LoadFromUrl("someUrl", cb);
或内联如下:
LoadFromUrl("someUrl", function(data) {
$("textarea#dump").val(data);
});
像这样改变你的方法:
function LoadFromURL(url, cb) {
$("textarea#dump").val("url=" + url); // Shows the URL, no problem
$.get(url, "", function (data) {
cb(data); //<-- call the CallBack method
});
}
这比jQuery的行为更多,回调是js中的一种生活方式。