2

こんにちは、私は ajax スクリプトを使用して を取得しますvar new_sample_data。私の .php には、2 つ目の JavaScript ファイルが含まれています。new_sample_dataそこで、ツールチップを表示するための変数も必要です。

最初の JavaScript ファイル:

 $.ajax({ 
        type: "POST",                                    
        url: '../assets/includes/geodata1.php',
        data: {datum1: Date.today().add({days: -29}).toString('yyyy-MM-dd'), datum2: Date.today().toString('yyyy-MM-dd')},
        dataType: 'json',
        success: function(data)
        {
        var new_sample_data = data;

var new_sample_dataしかし、私は2番目のjavascriptファイルから値を取得しません。var new_sample_data = "de":"4"常に 0. if(params.showTooltip) で手動を設定しようとしましたが、手動の値で機能します。しかし、私は自分のエラーを見つけられません:-)

2 番目の Java スクリプト ファイルのコード:

if (params.showTooltip) {
          map.label.text(mapData.pathes[code].name + " - Öffnungen: " + sample_data[code]);
          jQuery(params.container).trigger(labelShowEvent, [map.label, code]);
4

2 に答える 2

2

スコープに問題があるようです。グローバル (他の関数からアクセス可能) にするには、関数の外側で 1 回だけ
定義する必要があります。var new_sample_data

開始タグのvar new_sample_data;後に追加し、現在の場所から単語を削除します。<script>var

new_sample_data2 番目のファイルには、という変数が表示されませんsample_data。タイプミスの問題でもありますか?

于 2013-07-25T20:30:49.343 に答える
0

グローバル変数を作成するには、これを使用できます。

window.new_sample_data = data;

または、js ファイルの先頭など、関数スコープ外で var を使用して変数を初期化します。

ただし、変数はコールバック内にあるため、タイミングにも問題がある可能性があります。ajax リクエストによって返されたデータにアクセスしたい場合は、データがサーバーによって返されるまでは読み取らないようにする必要があります。最初の同期操作がすべて完了した後、変数が設定されている関数が同期的に呼び出されるため、後のファイルに参照を配置するだけでは不十分です。

于 2013-07-25T20:32:15.073 に答える