在一次工作中需要将功能模块实现拖曳并且排序,并且将排序结果保存到数据库,用户下次登录后直接读取数据库排序信息进行显示。LZ找了好多插件,最后发现 jquery.dragsort 这款插件是最好使用的,使用简单,配置方便。

下面我将演示如何使用该插件:

一、导入js。该插件是基于jQuery开发的,所以我们除了要导入jquery.dragsort.js外还需要导入jQuery。

二、HTML部分

<div class="model_main">
        <ul class="dragsort" id="modelDragsort">
            <li>
                <div class="modelMain">
                    <div class="main">
                        <div class="modelTitle"><a href="javascript:void(0)"></a></div>
                        <div class="modelContent">
                            <span class="contentImage"><img src="../resources/images/wyzs_01.png"/></span>
                            <span class="title">XXXXXX</span>
                            <a>XXXXXX</a>
                        </div>
                    </div>
                </div>
            </li>
            <li>
                <div class="modelMain">
                    <div class="main">
                        <div class="modelTitle"><a href="javascript:void(0)"></a></div>
                        <div class="modelContent">
                            <span class="contentImage"><img src="../resources/images/wyzn_01.png"/></span>
                            <span class="title">XXXXXX</span>
                            <a>XXXXXX</a>
                        </div>
                    </div>
                </div>
            </li>
            <li>
                <div class="modelMain">
                    <div class="main">
                        <div class="modelTitle"><a href="javascript:void(0)"></a></div>
                        <div class="modelContent">
                            <span class="contentImage"><img src="../resources/images/cjwt_01.png"/></span>
                            <span class="title">XXXXXX</span>
                            <a>XXXXXX</a>
                        </div>
                    </div>
                </div>
            </li>
            <li>
                <div class="modelMain">
                    <div class="main">
                        <div class="modelTitle"><a href="javascript:void(0)"></a></div>
                        <div class="modelContent">
                            <span class="contentImage"><img src="../resources/images/bdxz_01.png"/></span>
                            <span class="title">XXXXXX</span>
                            <a>XXXXXX</a>
                        </div>
                    </div>
                </div>
            </li>
        </ul>
    </div>

三、JS实现

$("#modelDragsort").dragsort({
        dragSelector: "div.modelTitle",      //容器拖动手柄
        dragBetween: true,                   //
        dragEnd:saveOrder,                   //执行之后的回调函数
        dragSelectorExclude : "div.modelContent",     //指定不会执行动作的元素
        placeHolderTemplate: "<li class='placeHolder'><div></div></li>",     //拖动列表的HTML部分
        scrollSpeed: 15            //拖动速度
    });

OVER!!!就是这么简单!!!!结果:

下面博主还是提供上门的CSS样式代码:

.model_main{
    width: 1001px;
    height: 270px;
    margin: 5px auto;
}

.model_main ul{
    margin: 0px;
    padding: 0px;
}

.model_main ul li{
    margin-left: 11px;
    float: left;
}

.model_main ul li:first-child{
    margin-left:0px;
}

.modelMain{
    width: 240px;
    height: 260px;
    margin-top: 0px;
    border: 1px solid #C5C5C5;
    float: left;
}

.modelMain .main{
    width: 232px;
    height: 252px;
    border: 3px solid #FFFFFF;
}

.modelTitle{
    width: 240px;
    margin: 0px 0px;
    padding-right: 10px;
    height: 30px;
    cursor: move;
}

.modelTitle a{
    display: block;
    width: 19px;
    height: 19px;
    background-image: url("../images/closeA_01.png");
    float: right;
    margin-top: 10px;
    margin-right: 20px;
    cursor: pointer;
}

.modelTitle a:hover{
    background-image: url("../images/closeA_02.png");
}

.modelContent{
    width: 210px;
    margin: 10px auto;
    height:200px;
    border: 1px solid #FFFFFF;
    background-color: #FFFFFF;
    cursor: pointer;
}

.modelContentHover{
    width: 210px;
    margin: 10px auto;
    height:200px;
    border: 1px solid #960010;
    background-color: #C11A16;
    cursor: pointer;
}

.modelContent .title{
    font-size: 20px;
    font-weight: bold;
    display: block;
    width: 156px;
    height:30px;
    text-align: center;
    margin: 0px auto;
    line-height: 30px;
}

.modelContent a{
    font-size: 14px;
    display: block;
    width: 156px;
    height:20px;
    text-align: center;
    margin: 0px auto;
    line-height: 20px;
    cursor: pointer;
}

.contentImage{
    display: block;
    width: 116px;
    height: 116px;
    margin: 13px auto;
}

解释说明:

dragSelector :CSS选择器内的元素的列表项的拖动手柄。默认值是“li”。 
dragSelectorExclude :CSS选择器的元素内的dragSelector不会触发dragsort的。默认值是”input, textarea, a[href]“。 
dragEnd :拖动结束后将被调用的回调函数。(想执行入库操作,就在这里做吧)
dragBetween :设置为“true”,如果你要启用多组列表之间拖动选定的列表。 默认值是false。 
placeHolderTemplate :拖动列表的HTML部分。默认值是”<li></li>”. 
scrollContainer :CSS选择器的元素,作为滚动容器,例如溢出的div设置为自动。 默认值是“窗口“. 
scrollSpeed :一个数字,它代表了速度,页面拖动某一项时,将滚动容器外,较高使用价值的是速度和较低的值是较慢的。 如果设置为”0″以禁用滚动。默认值是”5″.

jquery.dragsort实现列表拖曳、排序的更多相关文章

  1. easyui datagrid 点击列表头排序出现错乱的原因

    之前我的导师,也就是带我的同事,使用datagrid,发现点击列表头排序出现乱序,按理说只有顺序和逆序两种排序结果.因为他比较忙,当时没解决,把排序禁掉了,后来又要求一定要排序,所以他交给我. 一开始 ...

  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 设置排序

    jQuery EasyUI 数据网格 - 设置排序 本实例演示如何通过点击列表头来排序数据网格(DataGrid). 数据网格(DataGrid)的所有列可以通过点击列表头来排序.您可以定义哪列可以排 ...

  3. jquery.dragsort.js 实现拖拽过程遇到的问题

    .在IE下第一次拖动的时候,被拖动的li元素会不显示,查了很多资料发现是因为在IE中定位出了问题,li标签还在,只是位置计算出错.解决的办法是在li的css样式中position设置为relative ...

  4. Python list列表的排序

    当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函 ...

  5. python内置数据类型-字典和列表的排序 python BIT sort——dict and list

    python中字典按键或键值排序(我转!)   一.字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序. Py ...

  6. 多行滚动jQuery循环新闻列表代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 雷林鹏分享:jQuery EasyUI 数据网格 - 自定义排序

    jQuery EasyUI 数据网格 - 自定义排序 如果默认的排序行为不满足您的需求,您可以自定义数据网格(datagrid)的排序行为. 最基础的,用户可以在列上定义一个排序函数,函数名是 sor ...

  8. [转载]EF或LINQ 查询时使用IN并且根据列表自定义排序方法

    原文地址:EF或LINQ 查询时使用IN并且根据列表自定义排序方法作者:李明川 EF和LINQ改变了原有的手写SQL时期的一些编码方法,并且增强了各数据库之间的移植性简化了开发时的代码量和难度,由于很 ...

  9. iRSF快速简单易用的实现列表、排序、过滤功能

    IRSF 是由javascript编写,iRSF快速简单易用的实现列表.排序.过滤功能(该三种操作以下简称为 RSF ). iRSF由三个类组成. iRSFSource 数据源 iRSFFilter ...

随机推荐

  1. CXF(2.7.10) - RESTful Services, JSON Support

    在 CXF(2.7.10) - RESTful Services 介绍了 REST 风格的 WebService 服务,数据传输是基于 XML 格式的.如果要基于 JSON 格式传输数据,仅需要将注解 ...

  2. VSFTPD无法上传的解决方法

    搭建好FTP之后就没有去测试了,今天去试了一下上传的时候发生错误了,无法上传,提示“553 Could not create file”错误, 上网找了一些资料,发现很多都说是权限和防火墙的问题,但是 ...

  3. 转 Android中this、super的区别

    在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目 的,当然,this的另一个用 ...

  4. mssql 查询效率

    (1)临时表.表变量 据说:当数据量<100行数据时使用表变量,数据量较大时使用临时表(可创建索引提高查询效率). 表变量只能创建主键或唯一索引,准确讲是约束不是索引. (2)存储过程直接在查询 ...

  5. python遍历目录文件脚本的示例

    例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python# -*- coding: utf-8 ...

  6. 免费主机kilu使用

    我也是看了这篇文章:http://www.cnblogs.com/tenny/archive/2011/03/30/1999957.html 采取申请注册. 主机申请地址:http://www.kil ...

  7. WMI查看电脑信息,devenv管理自己的解决方案

    最近把公司用的电脑重装了一下,期间用到了驱动精灵,驱动精灵把电脑的全方面信息都显示出来了,让人有种一目了然的感觉,为什么我不自己也写个呢?虽然显示的数据不一定有驱动精灵全单至少是我自己写的,不是吗? ...

  8. ftp上传java代码

    <欢迎转载http://www.cnblogs.com/shizhongtao/p/3345826.html> 上传代码就写个简单的小例子.首先要加入jar包.commons-net-1. ...

  9. mapper配置

    一:查询 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC &q ...

  10. laravel 框架 开源的cms推荐

    laravel 框架写的开源的cms系统 TypiCMS系统 多语言和模块化的CMS Laravel 5.2框架 下载地址:https://github.com/TypiCMS/Base Bootst ...