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

126
Views
stopPropagation en la barra lateral de filtros de Shopware 6 no permite colapsables anidados

La barra lateral de Shopware 6 tiene elementos plegables de arranque para los filtros. Como tenemos muchas opciones de filtro para una propiedad, las colocamos en una estructura de propiedades/subpropiedades y queremos colapsar los elementos secundarios.

Así que agregamos

 <span class="collapsed" aria-expanded="false" data-toggle="collapse" data-target="#element-2647292d65d44853b2b3faaaf5a9572e"> <span class="icon icon-arrow-medium-down icon-xs"> <svg> [ chevron icon ] </svg> </span> </span>

Y he puesto los subelementos en un div:

 <div class="subelement-group collapse" id="element-2647292d65d44853b2b3faaaf5a9572e">

No funciona, y después de algunas depuraciones encontramos que hay un detector de eventos adicional adjunto al intervalo que debería expandir los subelementos div.

El evento adjunto es este :

 dropdownMenu.addEventListener('click', (event) => { event.stopPropagation(); });

Si eliminamos la llamada stopProgation , todo parece funcionar bien. Ahora nos preguntamos si solo hacemos una solicitud de extracción para el núcleo de Shopware que elimina esta línea o cuál podría ser la razón por la que se agregó.

¿También creemos que no hay otra forma de deshacer la propagación de parada?

EDITAR

Nos dimos cuenta de que no podemos simplemente eliminar stopPropagation. Es necesario en caso de que el filtro sea un menú desplegable en la parte superior de la página. También intentamos convertir el <span> en un <button> pero aún parece que no recibe los eventos de clic.

EDIT2: algo como esto funciona para la barra lateral: (después de cambiar el intervalo a un botón)

 dropdownMenu.addEventListener('click', (event) => { if (event.target.tagName === 'BUTTON' || event.target.closest('button') != null) { return; } event.stopPropagation(); });

Para la barra superior no funciona tan bien: el menú desplegable aún se cierra al expandirse.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Supongo que la solución más fácil es deshabilitar FilterBasePlugin._preventDropdownClose mediante una sobrescritura de JavaScript en nuestro tema, ya que no usamos la barra superior.

Una más genérica estaría bien, así que estoy abierto a respuestas adicionales.

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!