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);
});
私はそれが可能だとは思わない。ただし、関数内で外部変数を使用できます
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>");
});
}
お役に立てれば。