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

Bootstrap3升级到5.1后bootstrap-editable.js报constructor错误如何解决

错误原因

Bootstrap 3.x到5.x的jQuery插件API发生了不兼容变更:Bootstrap 3中popover组件的构造器及默认配置挂载在$.fn.popover.Constructor下,Bootstrap 5已移除该挂载路径,因此调用$.fn.popover.Constructor.DEFAULTS时会触发读取undefined的constructor属性的报错。

解决方案

方案1:修改bootstrap-editable.js源码

直接修改报错对应的代码行即可完成适配:
将原代码中

defaults: $.fn.popover.Constructor.DEFAULTS,

替换为

defaults: bootstrap.Popover.Default,

如果后续还遇到其他同类组件(如tooltip)的类似报错,按照相同逻辑替换为bootstrap.Tooltip.Default即可。

方案2:全局添加兼容映射(无需修改editable源码)

在引入bootstrap-editable.js之前,先执行以下兼容代码,补全BS3风格的API映射:

// Bootstrap 5 兼容 bootstrap-editable 映射配置
if (window.bootstrap && $.fn.popover && !$.fn.popover.Constructor) {
  $.fn.popover.Constructor = bootstrap.Popover;
  $.fn.popover.Constructor.DEFAULTS = bootstrap.Popover.Default;
  // 如需兼容tooltip可追加以下配置
  // $.fn.tooltip.Constructor = bootstrap.Tooltip;
  // $.fn.tooltip.Constructor.DEFAULTS = bootstrap.Tooltip.Default;
}
注意事项
  • 确保项目已正确引入Bootstrap 5依赖的Popper.js,否则popover组件无法正常初始化
  • 若使用无jQuery绑定的原生Bootstrap 5,需要额外引入Bootstrap 5官方提供的jQuery适配插件,确保$.fn.popover方法可正常调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:48:04