【问题标题】:jQuery or JavaScript nested sortable with top-level restrictions具有顶级限制的 jQuery 或 JavaScript 嵌套可排序
【发布时间】:2013-07-24 11:37:40
【问题描述】:

我正在寻找一个允许对嵌套列表进行拖放排序的 jQuery 插件(或纯 JavaScript 解决方案)。我遇到过几个这样的例子,但我需要一个允许特定限制的例子。

我需要的限制是顶级项目可以重新排序但不能移动到子级别。此外,子级项不能移动到顶级位置,但可以作为子项在顶级项之间移动。

我希望这是有道理的!我花了很长时间寻找一个插件来做到这一点,但无济于事。有一些很好的嵌套排序选项可用,但没有一个可以做到这一点。任何建议表示赞赏,插件或如何自己构建。

谢谢!

更新: 根据我自己的研究,以下似乎不支持这些限制: jQuery UI 可排序、nestedSortable、jQuery 可排序、HTML5 可排序、可嵌套

问题已解决: 对使用nestedSortable 时可用选项的进一步研究表明,将protectRoot 设置为true 是解决方案

【问题讨论】:

标签: javascript jquery sorting jquery-ui-sortable


【解决方案1】:

我认为 Jquery UI 应该能够处理这个问题。他们的 sortable 具有限制可以排序的内容的方法。 http://jqueryui.com/sortable/#items

【讨论】:

  • 每个元素都需要可排序,但仅限于特定位置。 jQuery UI sortable 似乎只能阻止一个项目完全可排序。
  • @Michael Henson 您可以将元素分类到其他列表中,也可以不分类。因此,如果您链​​接所有内部列表,但不将它们链接到您的顶级,我认为这会给您带来您想要的结果。 jqueryui.com/sortable/#connect-lists
  • 我刚刚意识到,如果我使用protectRoot 选项,nestedSortable 应该可以满足我的需求。感谢您的替代方案。
  • np,很高兴你知道了
【解决方案2】:

可以使用nestedSortable 并将protectRoot 设置为true 来实现。看到这个jsFiddle...

    $('ol.sortable').nestedSortable({
        protectRoot:true,
    });

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2017-11-12
    • 1970-01-01
    • 2011-02-18
    • 2016-05-15
    • 1970-01-01
    • 2019-10-30
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多