18910140161

JavaScript-为什么我的JS'点击事件'只跑一次?-堆栈溢出

顺晟科技

2022-10-18 13:32:47

85

我创建了一个Click事件,它可以打开以前“隐藏”的DIV,并在单击同一按钮时再次关闭它。

然而,它只运行一次(一次打开,一次关闭)-我无法解释为什么如果我再次点击它,它不工作。

let readMore = document.getElementById('clickAbout');
let moreInfo = document.getElementById('about');
let changeSepa = document.getElementById('sepChange');


readMore.addEventListener('click', function(){
    changeSepa.style.height = '2rem';
    if (moreInfo.className == "") {
        moreInfo.className = "open";
        moreInfo.style.display = 'block';
    } else {
        
            moreInfo.style.display = 'none';
    }
});

顺晟科技:

发生

这种情况是因为您正在检查ClassName==";";,但您正在将ClassName修改为";Open".在第二次单击时,它检查现在打开的类名。并转到else块。在第三次单击时,您希望它进入第一个块,但类名仍然是";打开";.

要进行简单的修复,只需更改else块

中的类名。
<代码>否则{moreInfo.ClassName=";";moreinfo.style.display='无';}

此外,我建议您使用元素上的else { moreInfo.className = ""; moreInfo.style.display = 'none'; } 属性https://developer.mozilla.org/en-us/docs/web/api/element/classlist.

使用类列表,它可能看起来像这样:

classList

或者甚至

readMore.addEventListener("click", function () {
  changeSepa.style.height = "2rem";
  if (moreInfo.className == "") {
    moreInfo.classList.add("open");
    moreInfo.style.display = "block";
  } else {
    moreInfo.classList.remove("open");
    moreInfo.style.display = "none";
  }
});

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航