2014-05-10 138 views
-2

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

编辑:控制台输出说,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(); 
     }; 
    }; 
    }); 
}); 
+0

因为问题没有定义 –

+3

你的javascript控制台告诉你什么? –

+0

@AbdennourToumi由于缺乏故障排除工作/完整性,请参阅编辑 – evamvid

回答

2

设置你的号码作为一个全局变量,然后分配给全球多个变种在主

<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(); 
     }; 
    }; 
    }); 
});