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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que el submenú se colapse cuando se hace clic en él y no se cierre automáticamente cuando se hace clic en la página, debemos modificar el código HTML de este menú. Específicamente, necesitamos agregar un poco de código JavaScript que manejará el evento de clic para el submenú.

    Una forma de hacer esto es agregar un escucha de eventos al elemento que contiene el submenú. Este escucha debe verificar si el submenú actualmente está abierto o cerrado, y luego cambiarlo en consecuencia. Podemos usar el método “toggleClass” de jQuery para esto.

    Aquí está el código HTML modificado con el código JavaScript agregado:

    <li class="nav-item">
      <a href="#" class="nav-link <?= $page == 'patients.php' || $page == 'medical_history.php' ? 'active':'';?>">
        <i class="nav-icon fa fa-users-medical"></i>
        Pacientes
        <i class="fas fa-angle-left right"></i>
      </a>
      <ul class="nav nav-treeview <?= $page == 'patients.php' || $page == 'medical_history.php' ? 'show':'';?>" style="display: none;">
        <li class="nav-item">
          <a href="patients.php" class="nav-link <?= $page == 'patients.php' ? 'active':'';?>">
            <i class="far fa-circle nav-icon"></i>
            Lista de Pacientes
          </a>
        </li>
        <li class="nav-item">
          <a href="medical_history.php" class="nav-link <?= $page == 'medical_history.php' ? 'active':'';?>">
            <i class="far fa-circle nav-icon"></i>
            Historial Médico
          </a>
        </li>
      </ul>
    </li>
    
    <script>
      $(document).ready(function() {
        // toggle submenu when clicked
        $('.nav-item > .nav-link').click(function() {
          var submenu = $(this).next('.nav-treeview');
          submenu.toggleClass('show');
        });
    
        // prevent submenu from closing when clicked
        $('.nav-treeview').click(function(event) {
          event.stopPropagation();
        });
    
        // hide all submenus when page is clicked
        $(document).click(function() {
          $('.nav-treeview').removeClass('show');
        });
      });
    </script>
    

    En este código, agregamos un escucha de eventos clic al elemento padre del submenú utilizando el método “click” de jQuery. Este escucha cambia la clase “show” del submenú usando el método “toggleClass”.

    También agregamos otro escucha de eventos clic al submenú en sí, lo que evita que se cierre al hacer clic en él. Esto es necesario porque de lo contrario, hacer clic en un enlace dentro del submenú lo cerraría antes de que se pudiera hacer clic en el enlace.

    Finalmente, agregamos un escucha de eventos clic al objeto de documento en sí, que oculta todos los submenús cuando se hace clic en la página. Esto garantiza que todos los submenús abiertos se cierren cuando el usuario hace clic fuera de ellos.

    Con estas modificaciones, el submenú ahora debería colapsarse al hacer clic en él y permanecer abierto cuando se hace clic en la página.

Comments are closed.