Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

181
Visualizações
Agregue una clase personalizada desde el enlace a drupal-modal drupal 8 con tema de arranque

En Drupal 8, con el tema de arranque cuando crea un enlace con atributos de class y data-dialog-type como el siguiente código:

 <a class="use-ajax" data-dialog-type="modal" href="http://drupal.page/front">text </a>

Abrirá el contenido de la página en #drupal-modal que tiene estos contenedores html:

 <div id="drupal-modal" class="modal fade in" tabindex="-1" role="dialog" style="display: block;"> <div class="modal-dialog" role="document"> <div class="modal-content">

Esta estructura se genera en: \themes\bootstrap\js\modal.js como podemos ver en el enlace .

¿Cómo lo modifico para poder pasar un nombre de clase al elemento #drupal-modal desde el enlace a.use-ajax ? El texto del nombre de la clase podría ser el valor de un atributo del enlace.

Específicamente, me gustaría agregar clases modal-lg o modal-sm o algunas personalizadas.

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

data-dialog-options le permite pasar cualquier opción al widget de diálogo de jQuery . Una de las opciones es dialogClass que le permite configurar la clase.

ejemplo html:

 <a class="use-ajax" data-dialog-type="modal" data-dialog-options="{&quot;width&quot;:800, &quot;dialogClass&quot;: &quot;product-information-incorrect&quot;}" href="#">Click me !</a>

No se necesitan js personalizados.

about 4 years ago · Santiago Trujillo Relatório

0

Gracias a @Waxi, he leído el otro problema y se me ocurrió esto:

 $(document).on("mousedown", ".use-ajax", function () { var modalClass = $(this).data('dialog-class'); $(document).on('show.bs.modal','.modal', function () { $('.modal-dialog',this).addClass("modal-" + modalClass); }) });

Tuve que usar el evento mousedown , porque el click no funcionaría porque está bloqueado por algo. Luego, obtiene contenido de data-dialog-class para que pueda agregarse al elemento .modal-dialog después de que el modal realmente se cargue, porque su html no está presente antes de eso

about 4 years ago · Santiago Trujillo Relatório

0

Mi solución

HTML:

 <a class="use-ajax" data-dialog-type="modal" href="#" data-dialog-class="your-class">Click me !</a>

JavaScript:

 var modalClass; $(document).on("mousedown", ".use-ajax", function () { modalClass = $(this).data('dialog-class'); $(document).on('show.bs.modal','.modal', function () { $(this).addClass(modalClass); }) }); // Add this part to remove the class when the modal is closed. $(document).on('hide.bs.modal','.modal', function () { $(this).removeClass(modalClass); })
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda