簡體   English   中英

jQuery getJSON在函數中不起作用

[英]jQuery getJSON not working within a function

在自定義函數中使用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無法正常工作,因此返回值領先一步。 jQuery認為這不是問題,因為使用Firebug(Firefox)進行調試時會調用該方法。 主要問題似乎是他無法加載文件。
  • 我的數據文件是.txt。 具有json結構。 (我用http://jsonlint.com/檢查了我的json結構,它說還可以)
  • 由於文件是本地存儲的,因此不會出現類似404的錯誤,並且在使用Firebug時不會顯示任何錯誤。
  • 我在編輯本文時創建了語法錯誤。 修復了大括號。

您的功能看起來不正確嘗試

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM