【问题标题】:jQueryUI Sortable: how do sort multiple lists without nestingjQuery UI Sortable:如何在不嵌套的情况下对多个列表进行排序
【发布时间】:2016-09-23 23:53:05
【问题描述】:

我正在尝试对由选择器(“.fruit”和“.color”)区分的多个列表进行排序,但没有将它们放入单独的 HTML 容器中。

<ul id="sortable">
    <li class='fruit'>orange</li>
    <li class='fruit'>apple</li>
    <li class='color'>yellow</li>
    <li class='color'>red</li>
</ul>

请看这个小提琴:https://jsfiddle.net/s9kqLh58/

因此,每个列表的元素应该是同级的,但可以根据项目选择器单独排序。效果应该是两种类型的列表项(颜色和水果)应该是不可混合的 - 颜色总是在底部,而水果总是在顶部。

正如您在小提琴中看到的,颜色是可排序的,但不是水果。

有没有办法用 jQueryUI 做到这一点,或者有人知道 jQueryUI 可排序的扩展可能允许我正在尝试做的事情吗?

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-sortable


    【解决方案1】:

    你需要这样做:

    <ul id="sortable">
     <div class="fruit">
       <li>orange</li>
       <li>apple</li>
     </div>
     <div class="color">
       <li>yellow</li>
       <li>red</li>
     </div>
    </ul>
    

    在你的 Javascript 中:

      $(function() {
        $( ".fruit" ).sortable();
        $( ".fruit" ).disableSelection();
        $( ".color" ).sortable();
        $( ".color" ).disableSelection();
      });
    

    看看这个JsFiddle

    【讨论】:

    • 感谢您的回复。不幸的是,这不是答案。颜色项目应该是可独立排序的水果项目,就好像它们在单独的列表中一样。因此,应该不可能重新排列物品以混合水果和颜色。
    • 这是可能的,但您必须为此编辑 HTML。你不能用普通的javascript来做到这一点(实际上你可以,但你需要大量的代码)。查看我编辑的代码。
    • 是的,这是通常的做法。但是,我试图有 2 个可排序列表而不将它们分成单独的 HTML 容器。
    • 嗯,好吧,我不能再帮你了。我希望你能找到你的答案:)
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    相关资源
    最近更新 更多