拖动排序记录数据的算法

问题描述

不用太具体,大概思路就可以了比如有5条记录,有字段title,id,sort_id,按下面的结构输出<div><div>title1</div><div>title2</div><div>title3</div><div>title4</div><div>title5</div></div>当我使用javascript拖动调整上面结构的时候,比如3拖到1前面,3变成排第1,2变成排第3,1变成排第2,其他不变。如何将这个顺序写入sort_id,当然可以每一条数据都修改一次,但感觉不太效率,比如4跟5的顺序没变,没必要去修改,有什么更好的算法吗?

解决方案

解决方案二:
引用楼主greedisgood5000的回复:

不用太具体,大概思路就可以了比如有5条记录,有字段title,id,sort_id,按下面的结构输出<div><div>title1</div><div>title2</div><div>title3</div><div>title4</div><div>title5</div></div>当我使用javascript拖动调整上面结构的时候,比如3拖……

首先确定步骤有2个步骤step1:dom树上真实位置移动varparent=div3.parentNode;parent.removeChild(div3);parent.insertBefore(div3,divX);//divX是你要插入到某个div的位置,这个divX是在你松开鼠标时从事件对象中获得event.targetstep2:仅遍历位置发生变化的dom元素,并更改其sort_id场景1:div3是从后向前插入,则遍历divX-->div3之间,将其sort_id更改场景2:div3是从前向后插入,做法一样,改成遍历div3-->divX

时间: 2024-07-29 14:59:52

拖动排序记录数据的算法的相关文章

基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)_javascript技巧

在上篇文章:基于Bootstrap的Metronic框架实现页面链接收藏夹功能,介绍了链接收藏夹功能的实现,以及对收藏记录的排序处理.该篇随笔主要使用功能按钮的方式移动收藏记录,功能虽然实现的还算不错,不过文章出来后,有读者同行指出可以利用直接拖动的方式实现排序更方便,因此对其中列表记录的排序进行了研究,从而介绍了如何利用Sortable开源JS组件实现拖动排序的处理,本篇随笔介绍了该组件在连接收藏夹排序中的应用. 1.收藏记录的排序处理回顾 上篇随笔介绍的收藏夹处理,主要就是为了方便用户快速进

Spark 颠覆 MapReduce 保持的排序记录

在过去几年,Apache Spark的采用以惊人的速度增加着,通常被作为MapReduce后继,可以支撑数千节点规模的集群部署.在内存中数 据处理上,Apache Spark比MapReduce更加高效已经得到广泛认识:但是当数据量远超内存容量时,我们也听到了一些机构在Spark使用 上的困扰.因此,我们与Spark社区一起,投入了大量的精力做Spark稳定性.扩展性.性能等方面的提升.既然Spark在GB或TB级别数据上运行 良好,那么它在PB级数据上也应当同样如此. 为了评估这些工作,最近我

iOS UITableView 拖动排序实现代码_IOS

UITbableView作为列表展示信息,除了展示的功能,有时还会用到删除,排序等功能,下面就来讲解一下如何实现排序.  排序是当表格进入编辑状态后,在单元格的右侧会出现一个按钮,点击按钮,就可以拖动单元格,移动位置,进行手动排序.  使用系统自带拖动排序功能的步骤:  1.让tableView进入编辑状态,也就是设置它的editing为YES  2.返回编辑模式,也就是实现UITableViewDelegate中的tableview:editingStyleForRowAtIndexPath:

使用RecylerView完成拖动排序高仿qq侧滑删除功能_Android

 最近使用到Recylerview完成拖动排序,侧滑删除,在此记录一下. 需要使用到:ItemTouchHelper.Callback这个类. 效果图: 在有RecylerView的Activity中,除了设置Adapter还需要做的事情有: MyItemTouchHelperCallback callback = new MyItemTouchHelperCallback(adapter); //此类继承ItemTouchHelper.Callback,这是帮助处理RecylerView拖动侧

基于Metronic的Bootstrap开发框架经验总结(13)--页面链接收藏夹功能的实现2(利用Sortable进行拖动排序)

在上篇随笔<基于Metronic的Bootstrap开发框架经验总结(12)--页面链接收藏夹功能的实现>上,我介绍了链接收藏夹功能的实现,以及对收藏记录的排序处理.该篇随笔主要使用功能按钮的方式移动收藏记录,功能虽然实现的还算不错,不过文章出来后,有读者同行指出可以利用直接拖动的方式实现排序更方便,因此对其中列表记录的排序进行了研究,从而介绍了如何利用Sortable开源JS组件实现拖动排序的处理,本篇随笔介绍了该组件在连接收藏夹排序中的应用. 1.收藏记录的排序处理回顾 上篇随笔介绍的收藏

1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录

在过去几年,Apache Spark的采用以惊人的速度增加着,通常被作为MapReduce后继,可以支撑数千节点规模的集群部署.在内存中数据处理上,Apache Spark比MapReduce更加高效已经得到广泛认识:但是当数据量远超内存容量时,我们也听到了一些机构在Spark使用上的困扰.因此,我们与Spark社区一起,投入了大量的精力做Spark稳定性.扩展性.性能等方面的提升.既然Spark在GB或TB级别数据上运行良好,那么它在PB级数据上也应当同样如此. 为了评估这些工作,最近我们与A

使用RecylerView完成拖动排序高仿qq侧滑删除功能

最近使用到Recylerview完成拖动排序,侧滑删除,在此记录一下. 需要使用到:ItemTouchHelper.Callback这个类. 效果图: 在有RecylerView的Activity中,除了设置Adapter还需要做的事情有: MyItemTouchHelperCallback callback = new MyItemTouchHelperCallback(adapter); //此类继承ItemTouchHelper.Callback,这是帮助处理RecylerView拖动侧滑

阿里巴巴资深算法专家刘忠义:聚星台——客户运营核心大数据与算法技术

大流量高并发互联网应用实践在线峰会官网:https://yq.aliyun.com/activity/112 峰会统一报名链接:http://yq.aliyun.com/webinar/join/49 议题名称:<聚星台:客户运营核心大数据与算法技术> 议题简介:聚星台是阿里巴巴赋能商家的客户运营平台,为商家提供包括千人千面访客运营.个性化营销.粉丝会员运营在内的一系列大数据驱动的客户运营能力.本次分享主要介绍聚星台的核心大数据和算法技术,包括智能千人千面算法.个性化营销算法.粉丝与会员运营算

C#实现简单的数据移动算法

最近一直都在忙于项目的版本开发,现在终于有时间闲下来写点东西了! 数据移动算法,其实是一个比较简单的程序,当移动的数据是一个的时候,只是移动的数据和被移动的数据相互交换下排序值Seq就可以了,不过当移动的数据不止一个的时候,有多个数据,而且这些数据可能是连续的,也可能是不连续的,这个时候虽然也不复杂,但是还是有点烦琐的.前段时间我正好碰到了个这样的需求,就写了个比较通用的算法. 算法效果演示: 1.在上述的数据中,同时向上移动[Key0].[Key2,Key3,Key4].[Key9]这三部分数