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

ClojureScript使用Bootstrap datetimepicker extern.js配置无效报错如何解决

配置错误原因

你当前的extern.js仅声明了jQuery的静态方法datetimepicker,但你实际调用的是jQuery实例对象的原型方法,该方法挂载在$.prototype对象上,未对外声明的原型方法名仍然会被Closure Compiler高级优化混淆为随机字符串,对应报错里的Bk,所以问题没有解决。

正确extern.js配置

修改你的extern.js为以下内容即可:

var $ = function (arg1, arg2) {};
// 保留原有需要的原型方法声明
$.prototype.val = function(arg1) {};
// 新增datetimepicker实例方法声明
$.prototype.datetimepicker = function(options) {};
// 以下为非必要内容,如果你没有用到对应场景可以删除
var selectpicker = function() {};
$.datetimepicker = function(arg1) {};
var datetimepicker = function() {};

额外注意事项

  • 确认你的ClojureScript构建工具(如shadow-cljs、lein-cljsbuild)的配置中已经正确引入该extern.js文件,路径配置无误
  • 清理构建缓存后重新编译项目,避免旧编译产物干扰

临时规避方案(无需修改extern)

如果不想维护extern文件,可以用字符串形式调用方法绕开混淆:

;; 方式1:通过aget获取方法后调用
(.call (aget (js/$ "#dateid") "datetimepicker") (js/$ "#dateid"))

;; 方式2:直接内嵌原生JS代码
(js* "$(\"#dateid\").datetimepicker()")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:24:03