【问题标题】:jQuery getJSON not working within a functionjQuery getJSON 在函数中不起作用
【发布时间】:2013-04-03 13:09:23
【问题描述】:

在自定义函数中使用 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 在加载本地文件时存在问题,但我不确定它是否适用于我的问题。

有什么想法吗?

@cmets:

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

【问题讨论】:

  • 查看您的控制台,看看您是否有任何问题,例如 404。
  • 你在调用getAllDepts函数吗?
  • 你真的调用了这个函数吗?
  • getAllDepts() 怎么称呼?您的文件是 .json 还是 .txt?您是否在控制台中看到错误?
  • 它不起作用,因为您的函数定义中的大括号一团糟。语法错误。

标签: javascript jquery html


【解决方案1】:

你的函数看起来不对试试

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

【讨论】:

  • 是的,你是对的,但这只是在此处创建此帖子时出现的错误。在我的程序中,我缺少“);”。
【解决方案2】:

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

(document).ready(function() {

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

}

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2010-11-08
    • 2013-05-17
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2010-12-16
    相关资源
    最近更新 更多