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.
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