$(document).ready(function() {中的jQuery运行函数

ily*_*lyo 2 jquery document-ready onload-event

我在这里做错了什么?为什么writeQuestions不加载运行(不是onclick..)?

$(document).ready(function() {

$.getJSON("JavaScript/questions.json", function(data) {questions = data;});
    $("#start").one("click" , writeQuestions);
    writeQuestions();

 });
Run Code Online (Sandbox Code Playgroud)

(该.one()行在我的代码中被注释掉了)

当我这样做时:window.onload=writeQuestions;它工作正常..

Fos*_*sco 5

writeQuestions() 在返回 JSON 结果之前运行。将函数调用放在回调函数中。

$(document).ready(function() {  
     $.getJSON("JavaScript/questions.json", 
          function(data) { questions = data; writeQuestions(); }
     ); 
}); 
Run Code Online (Sandbox Code Playgroud)

此外,我建议更新 writeQuestions() 函数以接受参数,并以这种方式传递问题。我很惊讶它曾经有效,因为存在可变范围问题。