javascript - 第二次点击隐藏div

标签 javascript css onclick

我有一段代码在点击父 div 时显示一个 div。当我再次单击父 div 时,我希望能够隐藏这个子 div。 我想不通。

我不明白它是否必须在一个单独的函数中?我如何检查它之前是否被点击过(也许是否显示了子 div?我真的很困惑该怎么做)。

谢谢你的帮助,

 document.getElementsByClassName('article-title')[i]
    .addEventListener('click', function (event) {
       articleDescription.style.display = "block";
 }

我的代码非常非常长,但是在点击时显示 div 效果很好。因此我没有发布整个代码。我只需要一些帮助,看看我需要进入哪个方向才能使其在第二次点击后消失

最佳答案

下面的代码片段应该适合您。基本上,它使用 window.getComputedStyle(this.children[0]).getPropertyValue("display") 检查元素是否可见。如果可见,则显示 div。如果它不可见,它会隐藏 div。

https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle

articleDescription = document.getElementsByClassName("article-description");
articleTitles = document.getElementsByClassName('article-title');

for (var i = 0; i < articleTitles.length; i++) {
  articleTitles[i]
    .addEventListener('click', function(event) {
    
      if (window.getComputedStyle(this.children[0]).getPropertyValue("display") == "none") {
        this.children[0].style.display = "block";
      }
      else if (window.getComputedStyle(this.children[0]).getPropertyValue("display") == "block") {
        this.children[0].style.display = "none";
      }
    })
}
.article-title {
  width: 300px;
  height: 50px;
  background-color: red;
}

.article-description {
  width: 300px;
  height: 50px;
  background-color: yellow;
  display: none;
}
<div class="article-title">
  <div class="article-description"></div>
</div>
<div class="article-title">
  <div class="article-description"></div>
</div>
<div class="article-title">
  <div class="article-description"></div>
</div>
<div class="article-title">
  <div class="article-description"></div>
</div>
<div class="article-title">
  <div class="article-description"></div>
</div>

关于javascript - 第二次点击隐藏div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963050/

相关文章:

javascript - 如何在移动到下一页之前为每个元素的 jquery 函数设置动画

javascript - 在开发者控制台的“网络”选项卡上访问或获取文件

安卓初学者 : Touch events in android gridview

javascript - 如何处理同一数组中多个对象的 onClick

javascript - 子组件不使用 React Router v4 渲染

javascript - Discord.js 无法读取未定义的属性 ID

html - CSS 将 div 顶部固定到父 div

css - 调整窗口窗口大小时重新定位 html 元素

html - CSS 属性 "inline"没有给我在网页中换行

每次点击时Javascript其他功能