Почему мой второй оператор if выполняется 2 раза подряд после моего первого оператора if? - PullRequest
0 голосов
/ 30 декабря 2018

Привет, ребята. У меня проблема с моей функцией checkRight ().Я пытался создать страницу викторины с помощью js.Вот мой полный код: https://www.codeply.com/go/qoCnPUDDxG Мои вопросы состоят из класса с атрибутами: question (строка), answers (массив строк) и answer (строка).Если я нажимаю на правильные ответы, мои счетчики становятся очень запутанными.

function checkRight (){
  $(".answer").click(function() {
       check = $(this).html();
       if(check===qAry[i].rightAnswer){
         rightCounter++;
         $(".richtigZaehler").text(rightCounter);
         i++;
         askQ();
       }
         else if(check!=qAry[i].rightAnswer){
         console.log("Update");
         wrongCounter++;
         $(".falschZaehler").text(wrongCounter);
      }
  });
}

1 Ответ

0 голосов
/ 30 декабря 2018

Как насчет добавления обработчика кликов снаружи?В противном случае вам необходимо отменить их регистрацию.

var rightCounter=0; //counter for rightAnswer
var wrongCounter=0; //counter for wronganswer

$(".answer").on("click", function() {
 checkRight(this);   
})

Затем в вашей функции checkRight:

function checkRight (evt){
       check = $(evt).html();
       if(check===qAry[i].rightAnswer){
           debugger;
         rightCounter++;
         $(".richtigZaehler").text(rightCounter);
         i++;
         askQ();
       }
         else if(check!=qAry[i].rightAnswer){
         console.log("Update");
         wrongCounter++;
         $(".falschZaehler").text(wrongCounter);
      }
}
...