Chcę aby po kliknięciu element .help uzyskał height: auto; jeśli jej nie posiada lub height: 0; w przeciwnym wypadku. Udało i się to zrobić jednak całość działa dopiero po drugim kliknięciu i nie mampojęcia z czego to wynika, ani jak to naprawić. Kod z html:
<h3 class="faq-header">...</h3>
<div class="help">
...
</div>
Z css:
.help {
height: 0px;
overflow: hidden;
transition: 1s;
}
Z js:
const faqHeaders = document.querySelectorAll('.faq-header');
faqHeaders.forEach(faqHeader => {
faqHeader.addEventListener('click', () => {
let syblingStyles = faqHeader.nextElementSibling.style;
if (syblingStyles.height == '0px') {
syblingStyles.height = 'auto';
syblingStyles.overflow = 'visible';
console.log('kl');
} else {
syblingStyles.height = '0px';
syblingStyles.overflow = 'hidden';
console.log('xd');
}
});
});
Dodam, że próbowałem każdej wersji porównania, zarówno == jak i === oraz '0px', 0 + 'px', czy po prostu 0.