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

标签 jquery document-ready onload-event

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

$(document).ready(function() {

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

 });

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

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

最佳答案

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

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

此外,我建议更新 writeQuestions() 函数以接受参数,并以这种方式传递问题。我很惊讶它居然能起作用,因为存在变量范围问题。

关于jQuery 在 $(document).ready(function() { 中运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059551/

相关文章:

javascript - 将 javascript 按钮更改为在任何地方单击

javascript - 重新加载页面时,Safari 上未触发加载事件

jquery - 新 HandsOnTable 版本中不显示滚动条

javascript - 基于选择下拉菜单的 jQuery 显示/隐藏未按预期工作

javascript - JQuery 如何在使用 Moment JS 时返回正确的日期

angularjs - 如何检测在 AngularJS 中完成的所有图像加载

JQuery $(document).ready ajax 加载

javascript - 重新访问 = image.onload 未调用

jQuery 调整大小功能在页面加载时不起作用

javascript - x-editable 弹出窗口未显示在正确的位置