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

checkbox点击事件仅触发一次,添加bootstrapTable配置后如何修复

问题根因

你遇到的现象本质是DOM重绘导致事件绑定失效:
调用bootstrapTable("refreshOptions")方法时,框架会重新渲染整个表格区域的DOM节点,如果你绑定click事件的checkbox位于表格渲染范围内,原有绑定了事件的旧DOM节点会被销毁替换为新节点,旧的事件绑定自然就失效了,所以只会触发一次。

修复方案

可以选以下任意一种方式解决:

  • 方案1:使用事件委托绑定事件
    不要直接给checkbox绑定click事件,而是把事件绑定到不会被表格重绘影响的上层父元素(比如document或者表格的外层固定容器),通过事件冒泡触发逻辑,就算子节点重绘也不会影响事件触发,示例代码如下:
$(document).on('click', 'input[type="checkbox"]', function(){
  alert('2');
  $("#fresh-table").bootstrapTable("refreshOptions", {
    detailView: false,
  });
})
  • 方案2:每次表格重绘后重新绑定事件
    在refreshOptions调用完成的回调中,重新给checkbox绑定click事件,不过这种方式需要重复写绑定逻辑,维护成本更高。
  • 方案3:使用bootstrapTable内置事件处理逻辑
    也就是你提到的onColumnSwitch(列切换事件),直接用表格框架提供的内置事件实现需求,这类事件由框架内部维护,不会因为表格重绘失效,是最符合bootstrapTable使用规范的方案。

内容的提问来源于stack exchange,提问作者Richard van Breugel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:06:04