Bootstrap jquery sortable 只对行进行排序?

Posted

技术标签:

【中文标题】Bootstrap jquery sortable 只对行进行排序?【英文标题】:Bootstrap jquery sortable only sorts rows? 【发布时间】:2018-03-01 22:44:16 【问题描述】:

我一直在尝试通过按钮引导网格进行排序。这是一种响应式设计,多行,每行包含 3 个按钮。我可以在整个容器上打开可排序,这让我可以拖放按钮,但它对整行都是如此。我希望能够选择单个按钮并将它们拖放到其他行。我觉得

$("buffer0,#buffer1,#buffer2").sortable(
     connectWith: "#buffer0,#buffer1,#buffer2"
) 

可以,但是不允许任何拖放操作。我创建了一个小提琴来展示它是如何工作的。 (调整输出屏幕的大小,以便您可以看到行)

真的很感激任何见解,盯着这个看了好几个小时,不知道该去哪里。

https://jsfiddle.net/7yhkp9eo/2/

【问题讨论】:

【参考方案1】:

你可以使用:

items: 指定元素内的哪些项目应该是可排序的。

tolerance:指定使用哪种模式来测试被移动的项目是否悬停在另一个项目上。可能的值。

$("#list_content").sortable(
    tolerance: "pointer",
    items: ".col-sm-4"
);
$("#list_content").disableSelection();
@import url('//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css');

body 
    margin: 10px;
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>


<div id="list_content">
    <div id="buffer0" class="row top-buffer">
        <div id="row0" class="col-sm-12 col-sm-offset-0 col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
            <div class="col-sm-4">
                <a link-type="c" href="#0,1" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T11</a>
            </div>
            <div class="col-sm-4">
                <a link-type="c" href="#0,2" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T12</a>
            </div>
            <div class="col-sm-4">
                <a link-type="c" href="#0,3" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T13</a>
            </div>
        </div>
    </div>
    <div id="buffer1" class="row top-buffer">
        <div id="row1" class="col-sm-12 col-sm-offset-0 col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
            <div class="col-sm-4">
                <a link-type="c" href="#0,4" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T21</a>
            </div>
            <div class="col-sm-4">
                <a link-type="c" href="#0,5" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T22</a>
            </div>
            <div class="col-sm-4">
                <a link-type="c" href="#0,6" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T23</a>
            </div>
        </div>
    </div>
    <div id="buffer2" class="row top-buffer">
        <div id="row2" class="col-sm-12 col-sm-offset-0 col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
            <div class="col-sm-4">
                <a link-type="c" href="#0,7" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T31</a>
            </div>
            <div class="col-sm-4">
                <a link-type="c" href="#0,8" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T32</a>
            </div>
            <div class="col-sm-4">
                <a link-type="c" href="#0,9" class="btn btn-default btn-lg btn-block btn-list  navbutton-padding"
                   role="button" data-original-title="" title=""><i class="fa fa-tasks icon-larger fa-2x fa-fw"></i>T33</a>
            </div>
        </div>
    </div>
</div>

【讨论】:

哦哇,好用!!!太棒了,你肯定让我很开心。在一个完美的世界中,将一个按钮从一行移动到另一行会将额外的按钮推入下一个缓冲区行....但这是可行的!

以上是关于Bootstrap jquery sortable 只对行进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

jquery sortable 提交数据保存 使用问题

JQuery UI Sortable + Laravel Collection Chunk:行可拖动而不是单个元素

ngx-bootstrap bs-sortable 在将菜单项拖动到可排序部分时显示先前拖动的项目

jquery-ui-sortable 的拖动事件

jquery Sortable connectWith 两次调用更新方法

jQuery Sortable的自身序列化