Şu projedeki 3 şıklı testi 4 şıklı olarak kullanmak istiyorum, aşağıya düzenlediğim js halini de koydum fakat bir yerde eksiklik var. Sorun anladığım kadarıyla doğru olan şık eklediğim 4. şıkka denk geldiğinde oluyor, 4. şıkka gelince doğru cevap tanımlanmıyor..
Muhtemelen, 25. satırı düzenlemem gerek ama bilgim yetmiyor. Yardımcı olursanız çok sevinirim...
Codepen Proje Linki:
https://codepen.io/savant/pen/gbaveO
Düzenlenmemiş js:
var quiz = [];
....
....
...[note: So many question in here]
quiz[1187] = new Question("Vincent van Gogh", "1853", "1859", "1844", "1841");
var randomQuestion;
var answers = [];
var currentScore = 0;
var currentWScore = 0;
document.addEventListener("DOMContentLoaded", function(event) {
btnProvideQuestion();
});
function Question(question,rightAnswer,wrongAnswer1,wrongAnswer2,wrongAnswer3) {
this.question = question;
this.rightAnswer = rightAnswer;
this.wrongAnswer1 = wrongAnswer1;
this.wrongAnswer2 = wrongAnswer2;
this.wrongAnswer3 = wrongAnswer3;
};
function shuffle(o) {
for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
function btnProvideQuestion() {
var randomNumber = Math.floor(Math.random()*quiz.length);
randomQuestion = quiz[randomNumber]; //getQuestion
answers = [randomQuestion.rightAnswer, randomQuestion.wrongAnswer1, randomQuestion.wrongAnswer2, randomQuestion.wrongAnswer3];
shuffle(answers);
document.getElementById("question").innerHTML= randomQuestion.question;
document.getElementById("answerA").value= answers[0];
document.getElementById("answerA").innerHTML= answers[0];
document.getElementById("answerB").value= answers[1];
document.getElementById("answerB").innerHTML= answers[1];
document.getElementById("answerC").value= answers[2];
document.getElementById("answerC").innerHTML= answers[2];
document.getElementById("answerD").value= answers[3];
document.getElementById("answerD").innerHTML= answers[3];
}
function answerA_clicked() {
var answerA = document.getElementById("answerA").value;
[1082 LİNE] checkAnswer(answerA);
}
function answerB_clicked() {
var answerB = document.getElementById("answerB").value;
checkAnswer(answerB);
}
function answerC_clicked() {
var answerC = document.getElementById("answerC").value;
checkAnswer(answerC);
}
function answerD_clicked() {
var answerD = document.getElementById("answerD").value;
checkAnswer(answerD);
}
function adjustScore(isCorrect) {
debugger;
if (isCorrect) {
currentScore++;
} else {
currentWScore++;
}
document.getElementById("score").innerHTML = currentScore;
document.getElementById("Wscore").innerHTML = currentWScore;
}
[1113 LİNE] function checkAnswer(answer) {
if (answer == randomQuestion.rightAnswer) {
swal({
title: "Right!",
type: "success",
allowOutsideClick: "on",
timer: "850",
showConfirmButton: false,
html: true
});
adjustScore(true);
btnProvideQuestion();
}
else {
if (checkoutHistory.checked) {
swal({
title: "Wrong",
type: "error",
confirmButtonColor: "#3498db",
confirmButtonText: "Next",
customClass: "sweetAlertModal",
allowOutsideClick: "on",
html: true
});
adjustScore(false);
btnProvideQuestion();
} else {
swal({
title: "Wrong!",
type: "error",
confirmButtonColor: "#3498db",
confirmButtonText: "Next",
customClass: "sweetAlertModal",
html: true
});
adjustScore(false);
btnProvideQuestion();
}
}
}Benim düzenlediğim halde JS kodları:
var quiz = [];
....
....
...[note: So many question in here]
quiz[1187] = new Question("Vincent van Gogh", "1853", "1859", "1844", "1841");
var randomQuestion;
var answers = [];
var currentScore = 0;
var currentWScore = 0;
document.addEventListener("DOMContentLoaded", function(event) {
btnProvideQuestion();
});
function Question(question,rightAnswer,wrongAnswer1,wrongAnswer2,wrongAnswer3) {
this.question = question;
this.rightAnswer = rightAnswer;
this.wrongAnswer1 = wrongAnswer1;
this.wrongAnswer2 = wrongAnswer2;
this.wrongAnswer3 = wrongAnswer3;
};
function shuffle(o) {
for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
function btnProvideQuestion() {
var randomNumber = Math.floor(Math.random()*quiz.length);
randomQuestion = quiz[randomNumber]; //getQuestion
answers = [randomQuestion.rightAnswer, randomQuestion.wrongAnswer1, randomQuestion.wrongAnswer2, randomQuestion.wrongAnswer3];
shuffle(answers);
document.getElementById("question").innerHTML= randomQuestion.question;
document.getElementById("answerA").value= answers[0];
document.getElementById("answerA").innerHTML= answers[0];
document.getElementById("answerB").value= answers[1];
document.getElementById("answerB").innerHTML= answers[1];
document.getElementById("answerC").value= answers[2];
document.getElementById("answerC").innerHTML= answers[2];
document.getElementById("answerD").value= answers[3];
document.getElementById("answerD").innerHTML= answers[3];
}
function answerA_clicked() {
var answerA = document.getElementById("answerA").value;
[1082 LİNE] checkAnswer(answerA);
}
function answerB_clicked() {
var answerB = document.getElementById("answerB").value;
checkAnswer(answerB);
}
function answerC_clicked() {
var answerC = document.getElementById("answerC").value;
checkAnswer(answerC);
}
function answerD_clicked() {
var answerD = document.getElementById("answerD").value;
checkAnswer(answerD);
}
function adjustScore(isCorrect) {
debugger;
if (isCorrect) {
currentScore++;
} else {
currentWScore++;
}
document.getElementById("score").innerHTML = currentScore;
document.getElementById("Wscore").innerHTML = currentWScore;
}
[1113 LİNE] function checkAnswer(answer) {
if (answer == randomQuestion.rightAnswer) {
swal({
title: "Right!",
type: "success",
allowOutsideClick: "on",
timer: "850",
showConfirmButton: false,
html: true
});
adjustScore(true);
btnProvideQuestion();
}
else {
if (checkoutHistory.checked) {
swal({
title: "Wrong",
type: "error",
confirmButtonColor: "#3498db",
confirmButtonText: "Next",
customClass: "sweetAlertModal",
allowOutsideClick: "on",
html: true
});
adjustScore(false);
btnProvideQuestion();
} else {
swal({
title: "Wrong!",
type: "error",
confirmButtonColor: "#3498db",
confirmButtonText: "Next",
customClass: "sweetAlertModal",
html: true
});
adjustScore(false);
btnProvideQuestion();
}
}
}Stackoverflow:
https://stackoverflow.com/questions/...r-of-undefined