0

関数の外部から変数を使用したいだけですが、そのために何をしなければならないかわかりません...

var myRequest = a;関数でこの変数を使用するのに行は十分ですか?

私はそのような例を見たので:var myRequest = e.which;

私の要求に対して成功した結果が得られなかったので、私はこれを求めています。

ブラウザのアドレスバーへのajaxFunction(3)書き込みとは動作が違うので、思うように動作していないと思います。send.php?goto=3

次のコードを確認できます。

function ajaxFunction(a)
{
    var ajaxRequest;
    try {
        ajaxRequest = new XMLHttpRequest();
    } catch (e) {
        try {
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser broke!");
                return false;
            }
        }
    }
    ajaxRequest.open("GET", "send.php?goto=" + a, true);
    ajaxRequest.send(); 
}
4

3 に答える 3

1

関数の外部で変数を使用する場合は、グローバル スコープ変数を使用する必要があります。例 (jQuery ajax を使用)

var globalA = null;

$(document).ready(function(){
    var localA1 = null;
    $.ajax({
       "url":"http://someurl.com/",
       "type":"POST",
       "dataType":"json",
       "success":function(incomingData){
           var localA2 = incomingData //localA2 only useable inside this function
           localA1 = incomingData; //localA1 being set here still can only be used here as code within the "ready" function has already been executed and will see it as null
           globalA = incomingData; //Now any further code should use globalA as it now contains useable data
           doSomethingWithData();
       },
       "error":function(xhr,msg) {
           alert("Ajax Error:"+msg);
       }
    });
    alert(localA1); //Will give alertbox with null in it as localA1 has not been set.
});

function doSometingWithData() {
    alert(globalA); //You can now use the data in whatever function makes reference to globalA
}

もちろん、この例では、データを直接渡しdoSomethingWithData()てそこで処理することもできます。

于 2012-10-31T20:42:34.633 に答える
0

$.globalEvalAJAX 成功関数内で変数をグローバルにインスタンス化するための jQuery を見ることができます。

$.ajax({
  url: "send.php",
  success: function (data) {
    $.getScript("somescript.js", function(data) {
      $.globalEval("var something = new Whatever;");
    });
}); 

$.getScript 部分は、ajax 呼び出しで外部 JS ファイルをロードし、そのアセットをグローバルに利用できるようにする必要がある場合に役立つ小さなスニペットです。$.globalEvalその後、AJAX 関数内で変数をインスタンス化するために使用できます。

$.globalEval のドキュメント

jQuery AJAX のドキュメント

于 2012-10-31T21:15:12.037 に答える
-2

変数に値を設定するための関数ラッパーではありません。

var myRequest = a;

それで十分です。

思考修正後

非常に基本的な方法で、変数はプレースホルダーのように独自に作成できます。

var myRequest;

関数にたどり着いたとき(一連の関数があるとします。

このようなことができます。

関数 (myRequest=a);

関数に複数の引数がある場合、次のようになります。

function(myRequest=a,myConcern=b); あなたがそれを述べているように

var arg1 = 1;
var arg2 = 2;
var arg3 = 3;

ajaxRequest.open(arg1,arg2,arg3);

これがお役に立てば幸いです。はい、さらに情報が役立つと思います (以下のポスターのように)。

于 2012-10-31T20:25:34.183 に答える