es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo seleccionar diferentes modalidades con una función?

Intenté el lightbox de W3 school y funciona bien, pero si tengo más modales en una página, el script los abre todos juntos.

¿Es posible establecer dentro de un script alguna condición que determine qué ventana modal debería abrirse? ¿O es esta la forma correcta de pensar cómo codificarlo?

Omití del código el estilo y toneladas de otro contenido para acortarlo, pero no hice ningún cambio en el script original de W3, excepto agregar una nueva línea de “myModal1” a las funciones open/closeModal, que es el problema que intento resolver.

¡Muchas gracias de antemano por sus respuestas! 🙂

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el problema de que todos los modales se abran juntos, puedes modificar la función openModal() para que acepte un parámetro que indique qué modal abrir. Luego, puedes llamar a la función con el parámetro apropiado basado en cuál galería fue presionada.

    Por ejemplo:

    function openModal(modalId) {
      document.getElementById(modalId).style.display = "block";
    }
    
    function closeModal(modalId) {
      document.getElementById(modalId).style.display = "none";
    }
    

    Y luego, en el HTML, puedes pasar el ID del modal correspondiente como un parámetro:

    <div class="row">
      <div class="whole-gallery">
        <h2 style="text-align:center;" onclick="openModal('myModal');currentSlide(1)" class="hover-shadow cursor">galería</h2>
      </div>
    </div>
    <div id="myModal" class="modal">
      ...
    </div>
    
    
    <div class="row">
      <div class="whole-gallery">
        <h2 style="text-align:center;" onclick="openModal('myModal1');currentSlide(1)" class="hover-shadow cursor">galería</h2>
      </div>
    </div>
    <div id="myModal1" class="modal">
      ...
    </div>
    

    De esta manera, sólo el modal con el ID especificado se abrirá/cerrará cuando se llame a la función.

    Este enfoque es una forma correcta de resolver el problema, ya que permite una mejor modularidad y reutilización del código.

Comments are closed.