• 30-07-2018, 00:09:04
    #1
    Ş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
  • 30-07-2018, 02:21:07
    #2
    https://codepen.io/anon/pen/BPmeJo
    dener misiniz doğru şık ilki seçenek olmalı
    JackkerL adlı üyeden alıntı: mesajı görüntüle
    Ş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
  • 31-07-2018, 23:39:39
    #3
    ahmethekim14 adlı üyeden alıntı: mesajı görüntüle
    https://codepen.io/anon/pen/BPmeJo
    dener misiniz doğru şık ilki seçenek olmalı
    [COLOR=transparent]
    Teşekkürler, yazdığınız kod gayet iyi çalışıyor. Konuyu düzenlemek için gelmiştim ki cevabınızı gördüm. Benim hatam js kodlarından ziyade farklı bir konuda olmuş, bu yüzden bahsettiğim hatayı almışım...

    Tekrardan yardımınız için teşekkür ederim.
  • 01-08-2018, 01:12:09
    #4
    rica ederim umarım sorun duzelmistir
    JackkerL adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler, yazdığınız kod gayet iyi çalışıyor. Konuyu düzenlemek için gelmiştim ki cevabınızı gördüm. Benim hatam js kodlarından ziyade farklı bir konuda olmuş, bu yüzden bahsettiğim hatayı almışım...

    Tekrardan yardımınız için teşekkür ederim.