У меня есть jQuery тест, который работает, но он скрывает неправильные ответы на предыдущие вопросы, как только правильный ответ - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть тест, который работает, но он скрывает неправильные ответы на предыдущие вопросы, когда правильный ответ сделан. Я хочу, чтобы результаты 6 вопросов появлялись, даже если некоторые из них неверны. Ненавижу повторять один и тот же код 6 раз.

https://designaire.com/test1/health.html

<script>
    $(function() {
          $('.exp').hide();
          $('.wrong').hide();
          $('input[name="test"]').on('click', function() {
            var el = $(this);
            if (el.val() == 'ans') {
              el.parents('.q').nextAll('.exp').first().show();
              el.parents('.q').nextAll('.wrong').first().hide();
              $('.wrong').hide();
            } else {
              el.parents('.q').nextAll('.wrong').first().show();
              el.parents('.q').nextAll('.exp').first().hide();
            }
          })
        });
    </script>
    <form class="q">
    1. Janelle is excitedly telling her friend Reina how her job interview went. Reina keeps texting her boyfriend.
      <div class="answer">
    <input name="test" type="radio" value="inc" />
    Respect
    <input name="test" type="radio" value="ans" />
    Disrespect
    </div>
    </form>
    <div class="exp">&#9733; Good Job!</div>
    <div class="wrong">Take another look at the examples in this lesson.</div></div>

1 Ответ

0 голосов
/ 19 февраля 2020

У вас есть условие, которое скрывает все элементы с неправильными ответами, просто избавьтесь от него.

<script>
    $(function() {
          $('.exp').hide();
          $('.wrong').hide();
          $('input[name="test"]').on('click', function() {
            var el = $(this);
            if (el.val() == 'ans') {
              el.parents('.q').nextAll('.exp').first().show();
              el.parents('.q').nextAll('.wrong').first().hide();
              $('.wrong').hide(); // => remove this line
            } else {
              el.parents('.q').nextAll('.wrong').first().show();
              el.parents('.q').nextAll('.exp').first().hide();
            }
          })
        });
    </script>

Пример: https://jsfiddle.net/L0u798by/

...