"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué un botón Mostrar/Ocultar al hacer doble clic solo funciona en la segunda invocación?

¿Por qué un botón Mostrar/Ocultar al hacer doble clic solo funciona en la segunda invocación?

Publicado el 2024-11-08
Navegar:135

Why Does a Double-Click Show/Hide Button Only Function on Second Invocation?

¿Por qué hacer doble clic para mostrar/ocultar el botón en el primer uso?

En una página web, un botón está destinado a mostrar u ocultar un elemento, pero requiere un doble clic en su invocación inicial. Tras examinarlo, se encuentra que el código del botón es:

function showhidemenu() {
  var x = document.getElementById("menu");
  if (x.style.display === "none") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}

El problema surge del estado inicial del elemento con ID "menú". De forma predeterminada, la propiedad de visualización del elemento está establecida en "ninguna" en el CSS. Cuando se llama a la función showhidemenu() por primera vez, se realiza la siguiente verificación:

if (x.style.display === "none")

Esta verificación se evalúa como verdadero porque la propiedad de visualización inicial del elemento es "ninguna". En consecuencia, la visualización del elemento se establece en "bloqueo". Sin embargo, en el siguiente clic, la propiedad de visualización se establece en "ninguno" como se esperaba.

Para solucionar este problema, la propiedad de visualización inicial del elemento se debe establecer en "vacío" en lugar de "ninguno". Hacerlo garantiza que la verificación en la función se evalúe correctamente en el primer clic.

if (x.style.display === "none" || x.style.display === "")

Con esta modificación, el botón mostrará el elemento en el primer clic, como se esperaba.

Declaración de liberación Este artículo se reimprime en: 1729206136 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3