jQuery:传递变量以在成功的$ .get请求时起作用

时间:2013-05-07 20:09:46

标签: javascript jquery variables get

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

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

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

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

感谢。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分: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>");
    });
}

希望这有帮助。