2

jQuery を自己定義関数内で使用すると問題が発生します。

次のように、.html から直接 jQuery を開始する場合:

<script type="text/javascript" src="js/MyJS.js"></script>

MyJS:

$.getJSON('MyFilePath', function(data)
{
  var items = [];
  $.each(data, function(key, val)
  {
  //Doing things with my data.
  });
 });

それは正常に動作し、私のファイルを返します。(json構造のプレーンテキストファイルを使用しています)。

しかし、関数から開始しようとすると、たとえば:

function getAllDepts()
{
  $.getJSON('MyFilePath', function(data)
  {
    var items = [];
    $.each(data, function(key, val)
    {
    //Doing things with my data.
    });
  });
}

うまくいきません。彼は私のファイルを読み込めないようですが、理由がわかりません。

と:

$.ajax({
             url: "MyFilePath",
             success: function(data){
             console.log(data);
             },
             error: function(data){
             alert(error);
             }
             });

データを取得することはできますが、getJSON が機能しない理由を知りたいだけです。getJSON にはローカル ファイルの読み込みに関する問題があると読みましたが、それが私の問題に当てはまるかどうかはわかりません。

何か案は?

@コメント:

  • はい、.hmtl で onclick:"getDepts()" を介して関数を呼び出していますが、正しく呼び出されます。
  • getJSON が正しく動作していないため、戻り値は一歩先を行っています。Firebug(Firefox)でデバッグするとメソッドが呼び出されるため、jQueryの考えでは問題ありません。主な問題は、彼がファイルをロードできないことです。
  • 私のデータ ファイルは .txt です。json構造で。( http://jsonlint.com/でjson構造を確認したところ、問題ないとのことでした)
  • ファイルはローカルに保存され、firebug の使用中にエラーが表示されないため、404 のようなエラーはありません。
  • この投稿の編集中に構文エラーを作成しました。ブレースを修正しました。
4

2 に答える 2

1

あなたの関数は正しく見えません

function getAllDepts() {
    $.getJSON('MyFilePath', function(data) {
        var items = [];
        $.each(data, function(key, val) {
            //Doing things with my data.
        });
    });
}
于 2013-04-03T13:35:03.797 に答える