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

父级div添加show类后绑定的onclick事件不生效如何解决

问题原因

你使用document.querySelector查找元素的逻辑仅在页面首次加载时执行一次,只会给页面加载瞬间就匹配到.screen.show选择器的区块内的next按钮绑定点击事件。后续你手动给其他screen区块添加show类时,新区块内的按钮从未绑定过事件,自然无法响应点击。
你刷新页面后事件绑定逻辑会重新执行,匹配到新加show类的区块按钮,所以新的按钮可用、原按钮失效,本质就是事件仅绑定了单次,没有覆盖所有场景。

解决方案

改用事件委托的写法,把点击事件绑定到页面上不会动态销毁的上层容器(比如document,也可以替换为所有.screen区块的共同父容器,性能更好),每次触发点击时再判断触发条件是否符合:

document.addEventListener('click', function(e) {
  // 点击的是当前显示screen区块的下一页按钮
  if (e.target.closest('.screen.show .screen-table-buttons .next')) {
    // 这里写你原来的下一页切换逻辑
    // ...
  }
  // 点击的是当前显示screen区块的上一页按钮
  if (e.target.closest('.screen.show .screen-table-buttons .prev')) {
    // 这里写你原来的上一页切换逻辑
    // ...
  }
})

这种写法不需要你在切换show类时额外做事件绑定/解绑操作,只要对应screen区块有show类,点击按钮就会触发对应逻辑,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者saintyusuf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:57:04