拖放以重新排序 HTML 列表

Posted

技术标签:

【中文标题】拖放以重新排序 HTML 列表【英文标题】:Drag and drop to reorder HTML lists 【发布时间】:2012-05-08 20:38:01 【问题描述】:

我有一个应用程序,我希望能够对其进行拖放以重新排序并将颜色分组。用于网格的 jQuery sortable 似乎反应迟钝,而且有点问题。 microjs 推荐 kbjr's DragDrop,但该库没有列表的概念,只有可移动对象。 Sproutcore 有一个很好的实现,但我找不到它适用于网格的演示。

我的用户界面如下所示:

我希望用户能够在组内拖动颜色以及在组之间拖动颜色。

【问题讨论】:

要问的一个问题是:临时分组有目的吗?我想是的。假设这一点-您应该真正开始@“这些集合是什么”,从您如何关联它们以及该关联对最终用户如何有意义的意义上说。编辑(对不起,按回车键)您需要听拖放位置,并且可能最好(最简单?)的方法是批量分配/取消分配课程。这些类应该代表集合@某个级别,您可能需要几个或更多来正确描述此行为-edit2-我偏爱 Jquery.so id 从那里开始 【参考方案1】:

试试this:html5 可排序。它是一个使用原生 HTML5 拖放 API 创建可排序列表和网格的 jQuery 插件。

【讨论】:

+1 但我有问题。我无法替换第一项。我的意思是,如果我将第二个或第三个拖到第一个位置,则不会替换第一个。有什么问题?谢谢! Ali Farhadi 的原始 Html5Sortable 没有得到积极维护。 Alexandru Badiu 的叉子是更好的选择。见github.com/voidberg/html5sortable。 排序后如何得到当前订单。 @briankip in jQuery ... $('#domId subEl').each(function() $(this).text(); ); 其中#domId 是您订购的任何东西的 dom 包装器,subEl 是所订购商品的类/标签名。【参考方案2】:

只是一个友好的更新,因为这个问题出现在搜索中。 HTML5Sortable 不再维护。推荐的库是Sortable。 大小:12kb 缩小。

代码:

var sortable = Sortable.create($('#items'));

希望这对下一个流浪者有所帮助。

【讨论】:

【参考方案3】:

我发现this (Nastable) 更有用一点,因为它具有嵌套功能。

更新 实际上最终使用了具有更多选项的this 插件。

希望对您有所帮助。 干杯!

【讨论】:

以上是关于拖放以重新排序 HTML 列表的主要内容,如果未能解决你的问题,请参考以下文章

在 JHipster 中拖放重新排序的列表:推荐啥?

拖放、可重新排序的列表的低级(无框架)示例?

重新排序 angularfire 支持列表的项目,拖放样式

同一页面上的两个重新排序列表框,防止用户在之间拖放

使用拖放重新排序winforms列表框?

PyQt:QListView 拖放重新排序信号问题