Sviatoy
@Sviatoy
beginner

Почему не работает onclick js в Apple устройствах?

HTML код (здесь использую плагин CFS, данные берутся с админки)
<div class="faq-box">
        <div class="column">

            <?php
            $faqQuestAnsw = CFS()->get('faq-left');
            $count = 1;
            foreach ($faqQuestAnsw as $question) {
            ?>

                <div class="question-answer">
                    <div class="question question-<?php echo $count; ?>" onclick="">
                        <span><?php echo $question['faq-left-question']; ?></span>
                        <div class="plus-minus">
                            <div class="line-horizontal"></div>
                            <div class="line-vertical line-vertical-<?php echo $count; ?>"></div>
                        </div>
                    </div>
                    <div class="answer answer-<?php echo $count; ?>"><?php echo $question['faq-left-answer']; ?></div>
                </div>

            <?php $count = $count + 1;
            } ?>


        </div>
        <div class="column">

            <?php
            $faqQuestAnsw = CFS()->get('faq-right');
            $count = 6;
            foreach ($faqQuestAnsw as $question) {
            ?>

                <div class="question-answer">
                    <div class="question question-<?php echo $count; ?>" onclick="">
                        <span><?php echo $question['faq-right-question']; ?></span>
                        <div class="plus-minus">
                            <div class="line-horizontal"></div>
                            <div class="line-vertical line-vertical-<?php echo $count; ?>"></div>
                        </div>
                    </div>
                    <div class="answer answer-<?php echo $count; ?>"><?php echo $question['faq-right-answer']; ?></div>
                </div>

            <?php $count = $count + 1;
            } ?>


        </div>
    </div>

CSS:
.question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor:pointer;
}

JS (извините за длинный код, но по сути все десять блоков повторяются, в JS новичок, если кто знает как можно сократить код, подскажите пож):
/* ===================================1============================================= */
if (document.querySelector('.answer-1')?.innerHTML) {
  let descrheight = document.querySelector('.answer-1').scrollHeight + 20;

  function openAnswer() {
    if (descrheight == 0) {
      document.querySelector('.answer-1').style.maxHeight = '0px';
      descrheight = document.querySelector('.answer-1').scrollHeight;
      document.querySelector('.answer-1').classList.remove('answer-active-1');
      document.querySelector('.line-vertical-1').classList.remove('line-vertical-deactive-1');
    }
    else {
      document.querySelector('.answer-1').style.maxHeight = descrheight + 'px';
      document.querySelector('.answer-1').classList.toggle('answer-active-1');
      document.querySelector('.line-vertical-1').classList.toggle('line-vertical-deactive-1');
      descrheight = 0;
    }
return false;
  }
  document.querySelector('.question-1').addEventListener("click", openAnswer);
}
/* ===================================2============================================= */
if (document.querySelector('.answer-2')?.innerHTML) {
  let descrheight = document.querySelector('.answer-2').scrollHeight + 20;

  function openAnswer() {
    if (descrheight == 0) {
      document.querySelector('.answer-2').style.maxHeight = '0px';
      descrheight = document.querySelector('.answer-2').scrollHeight;
      document.querySelector('.answer-2').classList.remove('answer-active-2');
      document.querySelector('.line-vertical-2').classList.remove('line-vertical-deactive-2');
    }
    else {
      document.querySelector('.answer-2').style.maxHeight = descrheight + 'px';
      document.querySelector('.answer-2').classList.toggle('answer-active-2');
      document.querySelector('.line-vertical-2').classList.toggle('line-vertical-deactive-2');
      descrheight = 0;
    }

  }
  document.querySelector('.question-2').addEventListener("click", openAnswer);
}
/* ===================================3============================================= */
if (document.querySelector('.answer-3')?.innerHTML) {
  let descrheight = document.querySelector('.answer-3').scrollHeight + 20;

  function openAnswer() {
    if (descrheight == 0) {
      document.querySelector('.answer-3').style.maxHeight = '0px';
      descrheight = document.querySelector('.answer-3').scrollHeight;
      document.querySelector('.answer-3').classList.remove('answer-active-3');
      document.querySelector('.line-vertical-3').classList.remove('line-vertical-deactive-3');
    }
    else {
      document.querySelector('.answer-3').style.maxHeight = descrheight + 'px';
      document.querySelector('.answer-3').classList.toggle('answer-active-3');
      document.querySelector('.line-vertical-3').classList.toggle('line-vertical-deactive-3');
      descrheight = 0;
    }

  }
  document.querySelector('.question-3').addEventListener("click", openAnswer);
}
/* ===================================4============================================= */
if (document.querySelector('.answer-4')?.innerHTML) {
  let descrheight = document.querySelector('.answer-4').scrollHeight + 20;

  function openAnswer() {
    if (descrheight == 0) {
      document.querySelector('.answer-4').style.maxHeight = '0px';
      descrheight = document.querySelector('.answer-4').scrollHeight;
      document.querySelector('.answer-4').classList.remove('answer-active-4');
      document.querySelector('.line-vertical-4').classList.remove('line-vertical-deactive-4');
    }
    else {
      document.querySelector('.answer-4').style.maxHeight = descrheight + 'px';
      document.querySelector('.answer-4').classList.toggle('answer-active-4');
      document.querySelector('.line-vertical-4').classList.toggle('line-vertical-deactive-4');
      descrheight = 0;
    }

  }
  document.querySelector('.question-4').addEventListener("click", openAnswer);
}
/* ===================================5============================================= */
if (document.querySelector('.answer-5')?.innerHTML) {
  let descrheight = document.querySelector('.answer-5').scrollHeight + 20;

  function openAnswer() {
    if (descrheight == 0) {
      document.querySelector('.answer-5').style.maxHeight = '0px';
      descrheight = document.querySelector('.answer-5').scrollHeight;
      document.querySelector('.answer-5').classList.remove('answer-active-5');
      document.querySelector('.line-vertical-5').classList.remove('line-vertical-deactive-5');
    }
    else {
      document.querySelector('.answer-5').style.maxHeight = descrheight + 'px';
      document.querySelector('.answer-5').classList.toggle('answer-active-5');
      document.querySelector('.line-vertical-5').classList.toggle('line-vertical-deactive-5');
      descrheight = 0;
    }

  }
  document.querySelector('.question-5').addEventListener("click", openAnswer);
}
/* ===================================6============================================= */
if (document.querySelector('.answer-6')?.innerHTML) {
  let descrheight = document.querySelector('.answer-6').scrollHeight + 20;

  function openAnswer() {
    if (descrheight == 0) {
      document.querySelector('.answer-6').style.maxHeight = '0px';
      descrheight = document.querySelector('.answer-6').scrollHeight;
      document.querySelector('.answer-6').classList.remove('answer-active-6');
      document.querySelector('.line-vertical-6').classList.remove('line-vertical-deactive-6');
    }
    else {
      document.querySelector('.answer-6').style.maxHeight = descrheight + 'px';
      document.querySelector('.answer-6').classList.toggle('answer-active-6');
      document.querySelector('.line-vertical-6').classList.toggle('line-vertical-deactive-6');
      descrheight = 0;
    }

  }
  document.querySelector('.question-6').addEventListener("click", openAnswer);
}

Проблема в том, что только на Apple устройствах не работает onclick, по нажатию на елемент question-1,2,3...На остальных устройствах всё корректно работает. На айфоне также установлен хром и тоже не работает, т.е. проблема не в Сафари. Хотя онклик на бургер-меню и на поиске на этом же сайте работает. Подскажите, пожалуйста, где копать?
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы