6

是否可以将预定义的变量传递给在成功的 jQuery $.get 请求时调用的函数?

如下例所示,PHP 脚本将返回“bar”:

var extra = "foo";
$.get(baar.php, function(data, extra){
    alert(extra + data);
});

因此,我的目标是向世界宣布“foobar”的警报框。

谢谢。

4

3 回答 3

4

您不需要传递它,extra因为 JavaScript 作用域的工作原理,它会在回调中可用。所以:

var extra = "foo";
$.get('baar.php', function(data){
    alert(extra + data);
});
于 2013-05-07T20:11:36.023 回答
1

我知道这篇文章很旧(呃),但我遇到了同样的问题,并认为我会为下一个人发布解决方案。基本上,就像 bfalvretto 上面所说的那样,jquery 的 .get() 和 .post() 函数是异步的,所以当它获得远程 url 时,变量的值是不同的。
我的解决方案是将它的 .get() 部分放入它自己的单独函数中,以限制回调的范围。这就是我想出的:

$("#SomethingClick").click(function(e) {
   e.preventDefault();

    $.post("..getURL", { id: 123 }, function(data) {
       for (i = 0; i < data.rows.length; i++) {
        ExternalFunction(data.rows[i].Value1, data.rows[i].Value2);
    }
    });
});
...
function ExternalFunction(value1, value2) {
    $.get("/Core/ContactViewer/" + contactID, function (data2) {
        $("someoutputdiv").html("<div>" + value1 + ": " + value2 + "</div>");
    });
}

希望这可以帮助。

于 2015-03-31T19:27:43.533 回答
1

我不认为这是可能的。但你可以在函数内部使用外部变量

var extra = "foo";
$.get(baar.php, function(data){
    alert(extra + data);
});
于 2013-05-07T20:12:24.430 回答