简体   繁体   English

页面渲染后的 Javascript/Jquery 运行脚本

[英]Javascript/Jquery run script after page is rendered

I am trying to make the feedback from the two functions, correct[] and wrong[] , show up as the user answers the questions.我试图让来自两个函数的反馈, correct[]wrong[] ,在用户回答问题时显示出来。 I added the jQuery ready function to attempt to make everything I want appear before the prompts but without success.我添加了 jQuery ready函数,试图让我想要的一切都出现在提示之前,但没有成功。 I have written the ready function into my code several times with no luck.我已经多次将就绪函数写入我的代码中,但都没有成功。 Can anybody help?有人可以帮忙吗?

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <head> <meta charset="UTF-8"> <title>Simple Math Quiz</title> <script> $("document").ready(function() { $("body").css("background-color", "green"); }); </script> </head> <body> <br><br> <p><em><strong>Feedback</strong></em></p><p><br><br> <script> //Question array var question = ["1. What is 1+1?", "2. What is 2+2?", "3. What is 3+3?", "4. What is 4+4?", "5. What is 5+5?" ]; //Other Variables var qlength = question.length; var counter = 0; var answer = ["2", "4", "6", "8", "10"]; //First box to tell the viewer whats going on alert('Answer the following 5 questions to determine if you are 1st grade smart.'); //Loop that asks the questions for (var i = 0; i < qlength; i++) { var userAnswer = prompt(question[i]); //Stores the answer to each question in userAnswer //Actions for correct answer if (userAnswer == answer[i]) { alert('Correct'); correct(i); var counter = counter + 1; //Adds one to the counter for correct answers } //Actions for wrong answer else { alert('Wrong'); wrong(i); } } //Functions function correct(i) { document.write(i + 1, ". Correct" + "<br>"); } function wrong(i) { document.write(i + 1, ". Wrong, correct answer = ", answer[i], "<br>"); } //Calculates the results based on the counter document.write("<br>You got " + counter + " answers out of 5 correct."); </script> </p> </body> </html>

NEVER use document.write after load.切勿在加载后使用 document.write。 It wipes the page and scripts.它会擦除页面和脚本。 Instead update a tag - here I use the jQuery you already use to append the answers而是更新标签 - 在这里我使用您已经使用的 jQuery 来附加答案

 // These needed to be and STAY global // Question array var question = ["1. What is 1+1?", "2. What is 2+2?", "3. What is 3+3?", "4. What is 4+4?", "5. What is 5+5?" ]; //Other Variables var qlength = question.length; var counter = 0; var answer = ["2", "4", "6", "8", "10"]; $("document").ready(function() { $("body").css("background-color", "green"); ask(); $("#result").append("<br>You got " + counter + " answer"+(counter==1?"":"s")+" out of 5 correct."); }); function ask() { //First box to tell the viewer whats going on alert('Answer the following 5 questions to determine if you are 1st grade smart.'); //Loop that asks the questions for (var i = 0; i < qlength; i++) { var userAnswer = prompt(question[i]); //Stores the answer to each question in userAnswer //Actions for correct answer if (userAnswer == answer[i]) { alert('Correct'); correct(i); counter++; //Adds one to the counter for correct answers } //Actions for wrong answer else { alert('Wrong'); wrong(i); } } } function correct(i) { $("#result").append(i + 1, ". Correct" + "<br>"); } function wrong(i) { $("#result").append(i + 1, ". Wrong, correct answer = ", answer[i], "<br>"); }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p><em> <strong> Feedback </strong></em> </p> <p id="result"></p>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM