【发布时间】:2019-12-17 14:27:05
【问题描述】:
我知道这是一个广泛的问题,但我还是新手,不知道要搜索/询问什么。
我有这个用于 Jeopardy 游戏的 JavaScript 系列。我确信有更好的方法来做到这一点,因为有很多重复。我正在考虑一些变量、数组和/或在调用函数时传递 ID,但不知道从哪里开始。任何想法,将不胜感激。我不是要求任何人做这项工作,只是给我一些想法和例子,告诉我前进的方向。
var score = 0;
//Disable the question button
function disableButton(btnID){
document.getElementById(btnID.id).disabled = true;
}
//Show current score
function endQuestion(){
alert ("Your total score is now " +score);
}
//Toggle Images On
function showImgBtn1(){
document.getElementById('btn1pic').style.visibility = 'visible';
setTimeout(askQuestion1,3000);
}
function showImgBtn2(){
document.getElementById('btn2pic').style.visibility = 'visible';
setTimeout(askQuestion2,3000);
}
//This keeps going for every question--repeated 9 to 20 times
//Questions
function askQuestion1()
{
var answer = prompt ("What body system contains the heart, blood, arteries, and veins?") .toLowerCase();
if (answer==="circulatory") {
alert ("Correct!");
score += 100;
}
else {
alert ("Sorry, incorrect.");
score -= 100;
}
endQuestion();
document.getElementById('btn1pic').style.visibility = 'hidden';
}
function askQuestion2()
{
var answer = prompt ("What body system contains the brain, spinal cord, and nerves?") .toLowerCase();
if (answer==="nervous") {
alert ("Correct!");
score += 200;
}
else {
alert ("Sorry, incorrect.");
score -= 200;
}
endQuestion();
document.getElementById('btn2pic').style.visibility = 'hidden';
}
//This keeps going for every question--same code, just replace the question and answer repeated 9 to 20 times
这就是我在 HTML 页面上的称呼:
<td><button id="btn1" onclick="showImgBtn1();disableButton(btn1)">100</button></td> //each button has a successive ID
这就是我在 HTML 页面上设置图片的方式:
<div>
<img class="picClue" id="btn1pic" src="btn1.jpg" height="200px">
<img class="picClue" id="btn2pic" src="btn2.jpg" height="200px">
<img class="picClue" id="btn3pic" src="btn3.jpg" height="200px">
<img class="picClue" id="btn4pic" src="btn4.jpg" height="200px">
</div>
感谢您的建议!
【问题讨论】:
-
不知道从哪里开始... 将所有重复的代码放到一个函数中 - 从
showImgBtn(button, askQuestion, duration)开始 - 然后以与 @987654325 类似的方式执行此操作@等等.. -
从数据开始。我认为测验是图片+问题+正确答案的有序(?)列表。想想你的函数来呈现你的页面以将其作为输入。另外,如果您想进行认真的测验 - 不要将答案发送给客户:)
标签: javascript arrays function simplify