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...На остальных устройствах всё корректно работает. На айфоне также установлен хром и тоже не работает, т.е. проблема не в Сафари. Хотя онклик на бургер-меню и на поиске на этом же сайте работает. Подскажите, пожалуйста, где копать?