jQuery getJSON在函数中不起作用

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

当我从我的.html开始我的jQuery时:

 

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有加载本地文件的问题,但我不确定它是否适用于我的问题。

有任何想法吗?

@评论:

  • 是的我通过onclick调用该函数:在我的.hmtl中调用“getDepts()”并正确调用它。
  • 返回值是一步,因为getJSON无法正常工作。 这不是mit jQuery认为的问题,因为在使用Firebug(Firefox)进行调试时,该方法会被调用。 主要问题似乎是他无法加载文件。
  • 我的数据文件是.txt。 与json结构。 (我用http://jsonlint.com/检查了我的json结构,它说没关系)
  • 没有类似404的错误,因为文件存储在本地,并且在使用firebug时没有出现错误。
  • 我在编辑这篇文章时创建了语法错误。 固定牙箍。

你的function看起来不对劲

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

请尝试以下方法。 这可能与$ .getJSON的异步性质有关。

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