I am making a frequent questions section and I added an arrow which I wanted to flip when the question is clicked and the answer showed.
I notice if I want for the element to be find with the e.currentTarget.children when clicked it most be immediate after the class clicked and I am having a hard time doing in it.
Any help is more than welcome!
This is my code:
HTML:
<section class="preguntas-frecuentes">
<ul class="preguntas">
<h3 class="titulo-preguntas">Preguntas frecuentes</h3>
<li id="beca-info" class="pregunta">
<div class="titulo-arrow">
<h4 class="pregunta-titulo">¿Qué es la ProgramacionBeca?</h4>
<img src="img/items/arrow.png" class="arrow" height="20px">
</div>
<p id="respuesta-beca" class="respuesta" hidden>Queremos que lo económico no sea una barrera a la
hora de acceder a educación de calidad. Por eso,
premiamos tu esfuerzo y te becamos con el 70% para que puedas hacer el curso o carrera que te
guste.</p>
<p id="respuesta-beca" class="respuesta" hidden>Contamos con 2 requisitos para mantener la beca: participar del 85% de las clases
y entregar todos los desafíos en tiempo y forma.</p>
</li>
<li id="metodología-info" class="pregunta">
<div class="titulo-arrow">
<h4 class="pregunta-titulo">¿Cómo es la metodología online en vivo?</h4>
<img src="img/items/arrow.png" class="arrow" height="20px">
</div>
<p id="respuesta-metodología" class="respuesta" hidden>Somos una plataforma que ofrece cursos y
carreras online y en vivo.
Tanto el profesor como el estudiante deben conectarse
ciertos días y horarios de la semana para poder asistir a la clase.
Todos los estudiantes tienen un grupo con el que empiezan y terminan el curso.</p>
<p id="respuesta-metodología" class="respuesta" hidden>Además del profesor, vas a tener un tutor personalizado que te te va a ayudar a avanzar con
todos tus proyectos y a despejar todas tus dudas durante y después de cada clase.</p>
</li>
</ul>
</section>
JQuery:
$(".pregunta").on('click', function (e) {
$(e.currentTarget).children('.respuesta').slideToggle();
$(e.currentTarget).(e.currentTarget)('.arrow').css('transform', ($('.arrow').css('transform') == 'none') ? 'rotate(180deg)' : 'none');
});
The code should look like this when clicked:
