You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于复选框通过addEventListener的click事件实现Div显隐失效的问题咨询

关于复选框通过addEventListener的click事件实现Div显隐失效的问题咨询

补充说明:我怀疑当前问题可能和页面刷新时元素显示后消失的JS点击事件相关,但还没完全确认。

我写了一段控制复选框显隐Div的JavaScript代码,单独测试时是正常工作的,但放到我做的产品筛选功能里就出问题了:勾选复选框时Div能正常显示,可取消勾选时Div却没法隐藏。而且项目里没办法直接给复选框添加onclick属性,只能用addEventListener来绑定事件。我想问问,能不能给同一个元素绑定两个click事件,一个负责触发显示、另一个负责触发隐藏?

下面是我单独测试时能用的代码:

<form>
  <input class="input" type="checkbox" id="checkbox-id">
</form>
<div id="showDiv">Show / hide</div>
#showDiv {
  display: none;
  width: 100%;
  background-color: #252525;
  color: #ffffff;
}
const check = document.getElementById("checkbox-id");
if (check) {
  check.addEventListener('click', event => {
    this.event = event;
    if (check.checked) {
      document.getElementById("showDiv").style.display = "block";
    } else {
      document.getElementById("showDiv").style.display = "none";
    }
  });
}

我试过下面这种写法(还有其他一些方案),但始终没法在Div显示后把它隐藏起来。目前只有click事件能让Div正常显示出来,如果需要更多信息我随时提供,谢谢大家!

const general   = document.getElementById("checkbox-id");
const checkOpen = () => {
  document.getElementById("showDiv").style.display = "block";
}
const checkClosed = () => {
  document.getElementById("showDiv").style.display = "none";
}
if (element) {
  element.addEventListener('click', event => {
    this.event = event;
    checkOpen();
    checkClosed();
  });
}

备注:内容来源于stack exchange,提问作者Bill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:45:29