Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

268
Vistas
Menú de hamburguesas: alterna el elemento en sí y alterna otros elementos excluyéndose entre sí

Tengo un menú de hamburguesas de varios niveles. Codepen, trató de hacerlo similar, pero sin fuentes e íconos

Ahora se pueden abrir muchos submenús y subsubmenús. El propietario solicitó activar solo uno: un elemento secundario y un elemento secundario secundario dentro.

El guión original es simple (sí, los más cercanos y los hermanos no funcionaron).

 jQuery('ul#burger-menu span.fa-open').on('click', function() { jQuery(this).toggleClass('rotate'); jQuery(this).parent('li').children('ul.sub-menu').slideToggle(); });

Al hacer clic en la flecha, gira, el elemento actual se abre y se cierra con un clic (debido a la alternancia, como tiene que ser).

Si necesito abrir solo uno, debería alternar la clase 'd-block' solo para el elemento activo y eliminarlo para otros. Lo intento de esa manera, y cuando abro el elemento, todos los demás se cierran, como tiene que ser, pero no puedo alternar el elemento abierto en sí. Solo se puede cerrar si abro otro elemento. Traté de dar una nueva clase a todos los elementos abiertos y hacer que el término eliminara las clases agregadas si fa-open está en línea con esta nueva clase.
¿Cómo arreglar todo eso?

 jQuery('ul#burger-menu>li>span.fa-open').on('click',function() { jQuery('ul#burger-menu>li>span.fa-open').removeClass('rotate'); jQuery(this).toggleClass('rotate'); jQuery('ul.sub').removeClass('d-block'); jQuery(this).parent('li').children('ul.sub').toggleClass('d-block'); /* jQuery('ul#burger-menu>li').removeClass('opened-burger-item'); jQuery(this).parent('li').addClass('opened-burger-item'); */ }); jQuery('ul#burger-menu li>ul.sub>li>span.fa-open').on('click',function() { jQuery('ul#burger-menu li>ul.sub>li>span.fa-open').removeClass('rotate'); jQuery(this).toggleClass('rotate'); jQuery('ul.subsub').removeClass('d-block'); jQuery(this).parent('li').children('ul.subsub').toggleClass('d-block'); /* jQuery('ul#burger-menu>li').removeClass('opened-burger-item'); jQuery(this).parent('li').addClass('opened-burger-item'); */ });

El elemento abierto tiene que cerrar a otros y tiene que alternar con un clic, no entiendo por qué entran en conflicto.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda