Ich schrieb eine prozentualKorrektur-Funktion für ein Quiz, das ich gemacht habe, aber es gibt den falschen Prozentsatz zurück, wenn ich meine Funktion anrufe. Ich habe auch einen Sekundentimer, aber ich kann nicht herausfinden, wie man die Minuten alle 60 Sekunden erhöht. Ich habe versucht, eine if-Anweisung, for-Schleife usw. zu verwenden. Hier ist mein Jquery-Code unten. Bitte helfen Sie, danke!Jquery Quiz Prozentsatz ist nicht korrekt
var minutes = 0;
var seconds = 0;
var intervalId;
var correct = 0;
var incorrect = 0;
var timeSpent;
$(document).ready(function(){
$("#results").addClass('hide');
$('#questions').addClass('hide');
$('#startTrivia').on('click', function(){
$('#questions').removeClass('hide');
startTimer();
});
$("#submit").on('click', function(){
$(".jumbotron").addClass('hide');
$("#questions").addClass('hide');
//get the number of correct... :checked is what the user checked
var numberCorrect = $('input[data-correct="correct"]:checked').length;
var numberIncorrect = 10 - numberCorrect;
//puts in the html what questions were correct vs incorrect
$('#correct').html(numberCorrect);
$("#incorrect").html(numberIncorrect);
timeSpent = "It took you " + minutes + " minutes and " + seconds + " seconds to complete the Thanksgiving Trivia!"
$("#timeTaken").html(timeSpent);
//calculating percentage of correct answers
$("#totalPercent").html("You got " + percentCorrect(numberCorrect, numberIncorrect) + "% on the test!");
//results will show after pushing submit
$("#results").removeClass('hide');
});
//timer pauses after clicking pause timer
$("#pauseGame").on('click', function(){
pauseTimer();
$("#questions").addClass('hide');
});
//timer resets after clicking reset timer
$('#restart').on('click', function(){
resetGame();
$("#questions").addClass('hide');
$("#results").addClass('hide');
$(".jumbotron").removeClass('hide');
//clearing the checked radio buttons
$("input:checked").removeAttr("checked");
});
});
// NOT GIVING CORRECT PERCENTAGE?
function percentCorrect(x, y) {
return Math.round((x/y)*100);
};
// CAN'T FIGURE OUT HOW TO MAKE MINUTES INCREASE EVERY 60 SECONDS?
function totalTime() {
seconds++;
$('#seconds').html(seconds);
};
function pauseTimer() {
clearInterval(intervalId);
};
function startTimer() {
intervalId = setInterval(totalTime, 1000);
};
function resetGame() {
seconds = -1;
totalTime();
this.clearInterval(intervalId);
};
es helfen würde, diese in zwei Fragen aufgeteilt und zeigt genau, was die Probleme mit den Berechnungen. Was sind die Eingaben? Was ist die erwartete Ausgabe? Welche Ausgabe erhalten Sie? Welche Funktion gibt den falschen Wert zurück? –
Ich denke, Sie übergeben die falschen Werte an Ihre 'percentCorrect' Funktionen. "y" sollte die Gesamtzahl der Fragen sein, die ich denke. Angenommen, Sie haben 9 Fragen richtig und 1 falsch, was (9/1) * 100 = 900 wäre, während, wenn "y" die Gesamtzahl der Fragen (10) ist, wäre (9/10) * 100 = 90. – putvande