我正在尝试将 jayq 与 jquery.ui.sortable 一起使用以使页面上的列表可排序。查看http://jqueryui.com/demos/sortable/似乎应该很简单:
(.sortable ($ :#sortable))
编译为:
jayq.core.$.call(null, "\ufdd0'#sortable").sortable();
并抛出:
Uncaught TypeError: Cannot call method 'call' of undefined
当我尝试将其包含在页面中时。有趣的是,当我将生成的代码粘贴到 js 控制台时,它确实在页面中工作,这对我来说意味着在执行该行之后加载了一些必要的东西。
我已经修改
(def cljs-options {:advanced {:externs ["externs/jquery.js"]}})
到
(def cljs-options {:advanced {:externs ["externs/jquery.js" "js/ui/jquery-ui.js]}})
在阅读 http://lukevanderhart.com/2011/09/30/using-javascript-and-clojurescript.html之后 ,这似乎还不够。我猜 jquery.ui 修改了 $ Prototype,但我不确定如何在 clojurescript 中完成此操作
如果有什么不同的话,我也在使用 noir 和 noir-cljs。
考虑将 jQueryUI 与闭包编译器一起使用,可能只是 jquery-ui 需要一个手卷的externs 文件才能使用,这可能是一项重大任务。任何人都可以确认吗?