Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

255
Views
Cómo mostrar/ocultar div según el estado del botón dinámico

Tengo un acordeón con 6 botones (clase de botón ".course-accordion") para expandir o contraer.

Debajo del acordeón, tengo un div ("colapso inferior") que me gustaría ocultar si todos los acordeones están colapsados, pero visible si 1 (o más) están abiertos. Este div contiene un botón para colapsar todo.

He intentado mostrar/ocultar si la clase de botón contiene 'activo', y he intentado mostrar/ocultar si el contenido del acordeón tiene una altura máxima de 0/100%. Parece que no puedo hacerlo funcionar.

¿Algunas ideas? jQuery o Javascript estaría bien aquí.

Ejemplo de marcado de código:

 <div class="course-wrapper"> <button class="course-accordion active">Course 01</button> <div class="course-panel">Course Content</div> </div> <div class="course-wrapper"> <button class="course-accordion">Course 02</button> <div class="course-panel">Course Content</div> </div> <div class="course-wrapper"> <button class="course-accordion">Course 03</button> <div class="course-panel">Course Content</div> </div> <!-- I want this to be hidden unless one or all of the above accordions is active --> <div class="expand-collapse"> <a class="collapse-bottom">Collapse All</a> </div>
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Aquí hay solo un ejemplo de un pseudocódigo (lo siento, ha pasado un tiempo desde que escribí JS o JQuery, así que ignóralo si esto no ayuda, pero pensé que tal vez podría ayudarte a encontrar el camino correcto), pero esto podría lograrse de muchas maneras.

Realice un seguimiento del estado del acordeón al tener un contador que se actualiza con la cantidad de divisiones de acordeón que tienen una clase == "Activo" cada vez que se hace clic en uno de los botones de acordeón.

//Luego, "Mientras" el contador sea mayor o igual a 1, muestre el botón Ocultar/Mostrar.

Espero que ayude. Estaría encantado de escribir algo, pero solo quería dar una implementación rápida y sucia para que pueda comenzar. Pero, de nuevo, si está buscando algo más concreto, estoy seguro de que yo, o alguien más, estaría encantado de ayudarle.

about 4 years ago · Juan Pablo Isaza Report

0

Puede usar hasClass() para verificar si un determinado elemento tiene una clase en particular.

Esto se puede hacer usando jquery:

 <div class="course-wrapper"> <button class="course-accordion">Course 01</button> <div class="course-panel">Course Content</div> </div> <div class="course-wrapper"> <button class="course-accordion">Course 02</button> <div class="course-panel">Course Content</div> </div> <div class="course-wrapper"> <button class="course-accordion">Course 03</button> <div class="course-panel">Course Content</div> </div> <div class="expand-collapse"> <a href="#" class="collapse-bottom">Collapse All</a> </div> <script src="https://code.jquery.com/jquery-3.6.0.js"></script> <script> function check_accord() { //check if any button has class active and shows the collapse-bottom element if ($(".course-accordion").hasClass("active")) { $(".collapse-bottom").show(); } else { $(".collapse-bottom").hide(); } } $(".course-accordion").click(function () { //toggles the active class of the clicked button $(this).toggleClass("active"); check_accord(); }); $(".collapse-bottom").click(function () { //removes the active class from all the buttons when collapse bottom is clicked $(".course-accordion").removeClass("active"); check_accord(); }); check_accord(); //executes the function each time the webpage is loaded </script>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!