2

在自定义函数中使用 jQuery 时,我遇到了问题。

当我从我的 .html 开始我的 jQuery 时,例如:

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

我的JS:

$.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 无法正常工作。jQuery 认为这不是问题,因为在使用 Firebug(Firefox) 进行调试时,会调用该方法。主要问题似乎是他无法加载文件。
  • 我的数据文件是 .txt。带json结构。(我用http://jsonlint.com/检查了我的 json 结构,它说没关系)
  • 没有像 404 这样的错误,因为文件存储在本地,并且在使用 firebug 时没有出现错误。
  • 我在编辑这篇文章时创建了语法错误。固定大括号。
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 回答
0

试试下面的。这可能与 $.getJSON 的异步特性有关。

(document).ready(function() {

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

}
于 2014-08-17T15:24:34.487 回答