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

$(document).ready(function() {

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

 });


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

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

最佳答案

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

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


另外,我建议更新writeQuestions()函数以接受参数,并以这种方式传递问题。由于存在可变范围问题,我感到惊讶,它曾经奏效。

10-07 17:24