为什么这个jquery代码没有执行?

时间:2014-05-10 02:08:46

标签: javascript jquery document-ready

我不认为$(document).ready();中的代码正在执行;这些元素都没有显示出来。我之前已经声明了按钮和文本,并且知道它在之前的测试中有效。 我想我有点想法 - $(document).ready();在页面加载时执行,而不是在main();之后执行。但是,我不明白为什么提交点击处理程序中的代码无法执行并显示必要的元素。

编辑:控制台输出表示number变量未定义。

question是一堆JSON,也称为工作......

function randomIntFromInterval(min,max)
{
    return Math.floor(Math.random()*(max-min+1)+min);
}
function main()
{
var number = randomIntFromInterval(1,4);
$("#main").html('<br>' + questions[number]["Question"] + '<br>' + '<form action="" id="questionblock">' + '<input type="radio" name="choice" value="Choice1">' + questions[number]["Choice1"] + '<br>' + '<input type="radio" name="choice" value="Choice2">' + questions[number]["Choice2"] + '<br>' + '<input type="radio" name="choice" value="Choice3">' + questions[number]["Choice3"] + '<br>' + '<input type="radio" name="choice" value="Choice4">' + questions[number]["Choice4"] + '<br>' + '</form>');
}
main();
$(document).ready(function(){
  $("#reset").hide();
  $("#submit").click(function(){
    var uc = $('input[name=choice]:checked', '#questionblock').val();
    var cc = questions[number]["Correct"];
    if (uc == "undefined") {
        document.write("Please choose an answer");
    } else {
      if (uc == cc) {
        $("#correct").html("Correct!");
        $("#reset").show();
      } else {
        $("#correct").html("incorrect");
        $("#reset").show();
      };
    };
  });
});

1 个答案:

答案 0 :(得分:2)

将您的号码设置为全局变量,然后在主

中分配全局号码var
<script>
var number;

function randomIntFromInterval(min,max)
{
    return Math.floor(Math.random()*(max-min+1)+min);
}
function main()
{
number = randomIntFromInterval(1,4);
$("#main").html('<br>' + questions[number]["Question"] + '<br>' + '<form action="" id="questionblock">' + '<input type="radio" name="choice" value="Choice1">' + questions[number]["Choice1"] + '<br>' + '<input type="radio" name="choice" value="Choice2">' + questions[number]["Choice2"] + '<br>' + '<input type="radio" name="choice" value="Choice3">' + questions[number]["Choice3"] + '<br>' + '<input type="radio" name="choice" value="Choice4">' + questions[number]["Choice4"] + '<br>' + '</form>');
}
main();
$(document).ready(function(){
  $("#reset").hide();
  $("#submit").click(function(){
    var uc = $('input[name=choice]:checked', '#questionblock').val();
    var cc = questions[number]["Correct"];
    if (uc == "undefined") {
        document.write("Please choose an answer");
    } else {
      if (uc == cc) {
        $("#correct").html("Correct!");
        $("#reset").show();
      } else {
        $("#correct").html("incorrect");
        $("#reset").show();
      };
    };
  });
});