标题中所说的内容。我有一个简单的应用程序需要这个功能,但是可以用纯ClojureScript编写,因此加载jQuery和jQueryUI似乎非常浪费。
:dependencies [[org.clojure/clojure "1.5.1"]
[org.clojure/clojurescript "0.0-1806"]
[jayq "2.3.0"]]
:plugins [[lein-cljsbuild "0.3.1"]]
:cljsbuild {
:builds [
{:source-paths ["src"]
:compiler
{:output-to "resources/public/js/out.js"
:optimizations :advanced
:pretty-print false
:externs ["resources/public/externs"]}}]})
然后为可排序函数编写一些cljs代码(jayq使这很容易):
(ns sortable.core
(:use [jayq.core :only [$]]))
(defn sortable [$elem]
(.sortable $elem))
(defn disable-selection [$elem]
(.disableSelection $elem))
(let [$sortable ($ :#sortable)]
(sortable $sortable)
(disable-selection $sortable))
为项目包含一个像这样的index.html文件。
也许有一些方法可以直接使用:foreign-libs在project.clj中编译jQuery库,但我不确定如何做到这一点。
编辑:抱歉,这仍然使用了整个jQuery库,所以并没有真正回答问题。
DragListGroup
,然后使用addDragList
将列表元素添加到该组。如果您希望能够在列表之间拖动元素,还可以将多个列表元素添加到同一组中。因为我对ClojureScript一无所知,所以无法给您提供适当的ClojureScript解决方案,但是jQuery和jQuery UI不应该那么浪费。
您可以通过使用Google CDN来包含jQuery库。许多网站都使用此源,因此文件会被缓存,不会反复下载。 请参见this链接。
//you can of course easily change the version you want to use, like 1.9.1
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script
jQuery UI也可以做到相同的效果
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
但是,如果你只想使用jQuery UI的sortable
小部件,你可以简单地使用他们的Download Builder。
只需取消“组件”下方“全部切换”复选框旁边的复选框,然后在“交互”中选中可排序的复选框即可。
下载您定制的jQuery UI版本,您需要包含的所有内容都是jquery-ui-1.10.3.custom.min.js
文件。 Download Builder还会下载一个CSS
主题,但对于可排序的小部件,我认为没有必要包含它。
但事实上,从Google CDN包含jQuery UI也是一个不错的选择。如果您在本地托管库,则用户必须至少下载一次。如果您使用Google,则大多数用户不需要下载文件。(除非版本不同)
这只是一个建议,如果ClojureScript中没有任何可以帮助您的东西。