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. }); }); } }