簡體   English   中英

在函數外訪問 jQuery 變量

[英]Accessing jQuery variable outside function

這不起作用:

   $(document).ready(function () {
    var getJ = null;
    var url = 'JSON file URL here';
    $.getJSON(url, function (data) {
         getJ = [...data]
    });
   }); 
   document.write(getJ[0].Tag)

(這里的標簽包含一些來自 JSON 文件的數據)

這僅在我在函數內部輸出 getJ 時有效; 然而,我想要它在外面。

這里有一些事情在起作用:

  1. 您的$(document).ready函數是一個回調,每當文檔完全加載時就會執行。 您的 document.write 調用沒有回調,因此它肯定會在您在.ready執行任何操作之前執行,並且尚未分配 getJ 。

  2. 您的$.getJSON調用還接受一個回調函數,這意味着它會在設置結果之前等待執行請求。 這些函數都被延遲了,而 document.write 不是。 您可以使 GET 請求同步(將 async 設置為 false)。 您可以通過使用完整的$.ajax調用來做到這一點: https : //stackoverflow.com/a/2765848或者您可以開始將您的函數鏈接在一起,因為同步調用已被棄用並且可能不會被支持很長時間。 以下是如何使用 jQuery 執行此操作的示例: https : //stackoverflow.com/a/16045729

  3. 盡管 JS 中的var會使變量在全局范圍內可訪問,但請不要在以后將其聲明在您甚至不打算使用它的范圍內來混淆自己或其他人。您想在您的范圍之外訪問此變量$(document).ready調用,因此您應該在該函數之前聲明它,以明確表示您希望它被更改。

暫無
暫無

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

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