"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que um botão Mostrar/Ocultar com clique duplo funciona apenas na segunda invocação?

Por que um botão Mostrar/Ocultar com clique duplo funciona apenas na segunda invocação?

Publicado em 2024-11-08
Navegar:348

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

Por que clicar duas vezes para mostrar/ocultar o botão no primeiro uso?

Em uma página da web, um botão tem como objetivo mostrar ou ocultar um elemento, mas requer um clique duplo em sua invocação inicial. Após exame, o código do botão é:

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

O problema decorre do estado inicial do elemento com ID "menu". Por padrão, a propriedade display do elemento é definida como “none” no CSS. Quando a função showhidemenu() é chamada pela primeira vez, a seguinte verificação é realizada:

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

Esta verificação é avaliado como verdadeiro porque a propriedade de exibição inicial do elemento é "none". Conseqüentemente, a exibição do elemento é definida como “bloquear”. No entanto, no próximo clique, a propriedade de exibição é definida como "none" conforme esperado.

Para resolver esse problema, a propriedade de exibição inicial do elemento deve ser definida como "vazia" em vez de "nenhuma". Isso garante que a verificação da função seja avaliada corretamente no primeiro clique.

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

Com esta modificação, o botão mostrará o elemento no primeiro clique, conforme pretendido.

Declaração de lançamento Este artigo foi reimpresso em: 1729206136 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3