Javascript 代码直到第二次点击 html 按钮才会触发?

标签 javascript html css dom event-listener

我正在学习 javascript,这段简单的代码无法按我需要的方式运行。

我所需要的只是在单击按钮时显示主标记。但是,在第二次点击之前它不会显示。

所以第一次点击不显示主要。第二次点击。

我试过在 html 文档中移动我的代码(在 body 结束标记之前/之后,等等)。

我查看了堆栈溢出,类似的问题对我的情况没有真正帮助。或者至少我不明白他们如何帮助我这个初学者。

var aboutShow = document.getElementById("aboutLink");
aboutShow.addEventListener("click", displayMain);

function displayMain(){
  var mainSection = document.getElementsByTagName("main")[0];
  if (mainSection.style.display === "none"){
    mainSection.style.display = "grid";
  }
  else{
    mainSection.style.display = "none";
  }
}
main{display:none;}
<main> ... </main>
<button type="button" id="aboutLink">About</button>

必须有一些我遗漏的东西阻止第一次点击触发代码。我的意思是,这看起来很简单???

最佳答案

if (mainSection.style.display === "none") 正在寻找一个内联样式标签,所以不要在你的 CSS 中设置 display:none; , 只需在元素上将其设置为内联:

var aboutShow = document.getElementById("aboutLink");
aboutShow.addEventListener("click", displayMain);

function displayMain(){
  var mainSection = document.getElementsByTagName("main")[0];
  if (mainSection.style.display === "none"){
    mainSection.style.display = "grid";
  }
  else{
    mainSection.style.display = "none";
  }
}
<main style="display:none;"> ... </main>
<button type="button" id="aboutLink">About</button>

关于Javascript 代码直到第二次点击 html 按钮才会触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57061351/

相关文章:

javascript - 检查输入的时间值

javascript - 如何确定 javascript 迭代器是否提前终止?

java - HTML 未正确下载

html - 另一个 div 的 div 中的 margin 属性

javascript - HTML contenteditable=true 乱序/意外改变表格行结构

javascript - 你如何在没有 jQuery 的情况下一次验证多个单选按钮?

python - 为什么 urllib 不适用于本地网站?

css - 自定义自动 HTML 电子邮件

php - 登录按钮类似于使用图像的保管箱

javascript - 我的增值税计算错误