JQuery GET分配数据

JQuery GET assigning data

本文关键字:数据 分配 GET JQuery      更新时间:2023-09-26

对不起,我是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)时,变量为空。

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
  });
}

这更像是javascript的行为,而不是jQuery,回调是js的一种生活方式。