• 締切済み

jqueryを使いajaxで取得したデータをコールバック関数外で取得する方法

下記のようなスクリプトでjQueryを使い、ajaxでtextを取得します。 コールバック関数内では、もちろんtextが使えるのですが、コールバック関数外からはtextに一切アクセスできなくなります。 このようにグローバルからajaxで取得したデータは取得できないのでしょうか? prototype.jsでも同じ結果です。 グローバルからの取得法、ご存知の方いらっしゃいましたらご教示頂ければと思います。 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"><!-- $(document).ready(function (){ $.get("./sample.txt",function(text){ alert(text); // textが取得できる }); }); alert(text); // textが取得できない // --></script>

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

関数の引数として宣言された変数 function(・・・)←カッコの中身 はvar がなくとも常にローカル変数になるので外部からはアクセスできません。 (これはAjaxとかjQueryとか関係なく単純にJavascriptの仕様) グローバル変数を用意しておいて、 コールバック関数内でグローバル変数に退避するのが手っ取り早いかと思います、

eltech
質問者

お礼

ありがとうございました。 ご教示頂いた通り、グローバル変数を宣言してコールバック関数で変数に突っ込むというやりかたで、期待通りの動作が確認できました。 まだまだ勉強することだらけです。 ほんとうに、ありがとうございました。