我在这里做错了什么?为什么writeQuestions
没有加载(不是onclick ..)?
$(document).ready(function() {
$.getJSON("JavaScript/questions.json", function(data) {questions = data;});
$("#start").one("click" , writeQuestions);
writeQuestions();
});
(我的代码中注释了.one()
行)
当我这样做时:window.onload=writeQuestions;
它工作正常..
答案 0 :(得分:4)
你试过......
$.getJSON("JavaScript/questions.json", function(data) {
questions = data;
writeQuestions();
});
在您的示例中,writeQuestions
将在getJSON
调用返回之前被调用。
编辑,您在此处声明questions
为全局变量,因为您不使用var
关键字。这可能有用,但这不是一个好习惯,容易出错。最好重写为:
$.getJSON("JavaScript/questions.json", function(data) {
writeQuestions(data);
});
答案 1 :(得分:4)
writeQuestions()正在运行。将函数调用放在回调函数中。
$(document).ready(function() {
$.getJSON("JavaScript/questions.json",
function(data) { questions = data; writeQuestions(); }
);
});
另外,我建议更新writeQuestions()函数以接受参数,并以这种方式传递问题。我感到很惊讶,因为存在可变范围问题。
答案 2 :(得分:0)
你的问题加载在.getJSON()中吗? 如果是这样,请尝试取得成功
$.getJSON("JavaScript/questions.json", function(data) {
questions = data;
}).success(function() {writeQuestions();)