是否可以将预定义的变量传递给在成功的 jQuery $.get 请求时调用的函数?
如下例所示,PHP 脚本将返回“bar”:
var extra = "foo";
$.get(baar.php, function(data, extra){
alert(extra + data);
});
因此,我的目标是向世界宣布“foobar”的警报框。
谢谢。
是否可以将预定义的变量传递给在成功的 jQuery $.get 请求时调用的函数?
如下例所示,PHP 脚本将返回“bar”:
var extra = "foo";
$.get(baar.php, function(data, extra){
alert(extra + data);
});
因此,我的目标是向世界宣布“foobar”的警报框。
谢谢。
您不需要传递它,extra
因为 JavaScript 作用域的工作原理,它会在回调中可用。所以:
var extra = "foo";
$.get('baar.php', function(data){
alert(extra + data);
});
我知道这篇文章很旧(呃),但我遇到了同样的问题,并认为我会为下一个人发布解决方案。基本上,就像 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>");
});
}
希望这可以帮助。
我不认为这是可能的。但你可以在函数内部使用外部变量
var extra = "foo";
$.get(baar.php, function(data){
alert(extra + data);
});