html列表拖拽排序插件,JS拖拽排序插件Sortable.js用法实例分析

本文实例讲述了JS拖拽排序插件Sortable.js用法。分享给大家供大家参考,具体如下:

最近由于项目功能设计的原因,需要对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js,再然后就有了这篇文章。

特点:

轻量级但功能强大

移动列表项时有动画

支持触屏设备和大多数浏览器(IE9及以下除外)

支持单个列表容器内部拖拽排序,也支持两个列表容器互相拖拽排序

支持拖放操作和可选择的文本

非常友善的滚动效果

基于原生HTML5中的拖放API

支持多种框架(Angular、Vue、React等)

支持所有的CSS框架,如:Bootstrap

简单的API,方便调用

CDN

不依赖于jQuery

运行效果如下图所示:

c3a9005142b1c30abee4496f7afda1b9.png

单个列表容器内部拖拽排序

$(document).ready(function () {

var ul = document.getElementById("infos");

var sortable = new Sortable(ul, {

handle: "input,li",//设置li、input支持拖拽

animation: 150,//设置动画时长

// Element dragging started

onStart: function (/**Event*/evt) {

evt.oldIndex; // element index within parent,此处指的是li的索引值

},

// Element dragging ended

onEnd: function (/**Event*/evt) {

var lis = $("#infos li");

//拖拽完毕后重新设置序号,使其连续

for (var i = 0; i < lis.length; i++) {

var no = $(lis[i]).find("input:eq(0)");

no.val(i + 1);

}

}

});

});

li{

cursor:pointer;

padding-bottom:5px;

list-style:none;

}

  • --请选择--

    objective

    proposition

  • --请选择--

    eliminate

    alige

  • --请选择--

    optimize

    deploy

两个列表容器相互拖拽排序

$(document).ready(function () {

var infosOne = document.getElementById("infosOne");

var sortableOne = new Sortable(infosOne, {

group: "guo",//若需要在两个列表容器间拖拽排序,那group的值必须相同

handle: "input,li",//设置li、input支持拖拽

animation: 150,//设置动画时长

// Element dragging started

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 sortable.js 来实现拖动排序,并将排序结果发送到后台,您需要遵循以下步骤: 1. 引入 sortable.js 库 在页面中引入 sortable.js 库,可以从官方网站下载或使用 CDN。 2. 创建可排序列表 使用 HTML 和 CSS 创建可排序列表。在每个列表项中添加一个唯一的标识符,以便在排序后将其发送到后台。 3. 初始化 sortable.js 在 JavaScript 中初始化 sortable.js。使用 onEnd 回调函数来捕获排序事件,并获取排序结果。 4. 将结果发送到后台 在 onEnd 回调函数中,将排序结果发送到后台。您可以使用 AJAX 或其他方法来完成此操作。 以下是示例代码: HTML: ``` <ul id="sortable"> <li data-id="1">Item 1</li> <li data-id="2">Item 2</li> <li data-id="3">Item 3</li> <li data-id="4">Item 4</li> </ul> <button id="save">Save</button> ``` JavaScript: ``` // 初始化 sortable.js var sortable = Sortable.create(document.getElementById('sortable'), { onEnd: function (evt) { // 获取排序结果 var items = sortable.toArray(); // 将结果发送到后台 $.ajax({ url: '/save', type: 'post', data: { items: items }, success: function (response) { console.log(response); } }); } }); // 保存按钮点击事件 $('#save').click(function () { // 获取排序结果 var items = sortable.toArray(); // 将结果发送到后台 $.ajax({ url: '/save', type: 'post', data: { items: items }, success: function (response) { console.log(response); } }); }); ``` 在上面的示例代码中,我们使用 jQuery 的 AJAX 方法将排序结果作为 POST 请求发送到 /save 路径。您需要根据自己的需求更改此代码以适应您的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值