


How does uni-app+sortable.js implement drag and drop sorting? Step sharing
How to implement drag and drop sorting in uni-app? The following article will introduce to you how to use sortable.js to implement drag and drop sorting in uni-app. I hope it will be helpful to you!
uni-app drag and drop sorting
Preface
Make one this week On the page, there is a character sorting function that can be manually dragged to change the sorting position. After searching, I found
sortable.js, which can be used to implement this drag-and-drop function.
Thoughts
When viewing the official document of sortable.js
, I saw that there is an onUpdate in it
event, after dragging to change the position, the return value contains the starting index value and the changed index value. Through this, you can change the content of the array to achieve the function of changing the position after dragging.
Steps
Installationsortable.js
npm install sortablejs --save-dev
Get node
The node obtained here is the parent node that needs to be dragged into the list
let uls = document.getElementById('list')
Load node
new Sortable(uls,{})
Trigger<span style="font-size: 18px;">onUpdate</span>
Event
Because in the process of doing it, I found that if I use the position of the dom node to operate When modifying the order of items, a bug will occur, so after searching for information, I finally found the problem using Sortable in Vue. Therefore, before modifying the order of items, you should first modify the corresponding node.
Change Node
Delete the moved node first, then insert the moved node into the original node
newLi = uls.children[newIndex], //移动节点 oldLi = uls.children[oldIndex]; //原有节点 uls.removeChild(newLi) // 删除移动的节点 uls.insertBefore(newLi, oldLi) // 将移动节点插入到原有节点中
Note: Because when changing from When dragging down and up, one node will be added, so the original index value will be one less. When newIndex < oldIndex
, the next node of the oldLi
node will be used.
uls.insertBefore(newLi, oldLi.nextSibling)
Change the array
Delete the original array and store the data
let item = _this.items.splice(oldIndex, 1)
Add the data to the remaining array index value
_this.items.splice(newIndex, 0, item[0])
Complete code
let uls = document.getElementById('list') new Sortable(uls, { onUpdate: function (event) { //获得基础数据 let newIndex = event.newIndex, oldIndex = event.oldIndex, newLi = uls.children[newIndex], oldLi = uls.children[oldIndex]; // 删除原有节点 uls.removeChild(newLi) // 将移动的节点插入原有节点中 if (newIndex > oldIndex) { uls.insertBefore(newLi, oldLi) } else { uls.insertBefore(newLi, oldLi.nextSibling) } // 修改数组 let item = _this.items.splice(oldIndex, 1) _this.items.splice(newIndex, 0, item[0]) },
Recommended: "uniapp tutorial"
The above is the detailed content of How does uni-app+sortable.js implement drag and drop sorting? Step sharing. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



How to develop uni-app in VSCode? The following article will share with you a tutorial on developing uni-app in VSCode. This may be the best and most detailed tutorial. Come and take a look!

How to use uniapp to develop a simple map navigation? This article will provide you with an idea for making a simple map. I hope it will be helpful to you!

How to use Vue and Element-UI to implement drag-and-drop sorting function Preface: In web development, drag-and-drop sorting function is a common and practical function. This article will introduce how to use Vue and Element-UI to implement the drag-and-drop sorting function, and demonstrate the implementation process through code examples. 1. Environment setup and installation Node.js Before starting, you need to install Node.js. You can visit https://nodejs.org/ to download and install the version corresponding to the operating system. Install VueCL

How to use vue and Element-plus to implement drag-and-drop and sorting functions Introduction: In modern web development, user interaction experience is becoming more and more important. Drag-and-drop and sorting functions are common interactive operations that allow users to easily rearrange elements or adjust the position of elements. This article will introduce how to use Vue and Element-plus libraries to implement drag-and-drop and sorting functions, and provide corresponding code examples. Technical preparation: In order to start writing Vue and Element-plus related code, we

How to use uniapp to develop a snake game? The following article will take you step by step to implement the Snake game in uniapp. I hope it will be helpful to you!

uni-app interface, global method encapsulation 1. Create an api file in the root directory, create api.js, baseUrl.js and http.js files in the api folder 2.baseUrl.js file code exportdefault"https://XXXX .test03.qcw800.com/api/"3.http.js file code exportfunctionhttps(opts,data){lethttpDefaultOpts={url:opts.url,data:data,method:opts.method

This article brings you relevant knowledge about uniapp, which mainly organizes the related issues of implementing the select-all function of the multi-select box. The reason why the select-all function cannot be implemented is that when the checked field of the checkbox is dynamically modified, the status on the interface can Real-time changes, but the change event of checkbox-group cannot be triggered. Let's take a look at it. I hope it will be helpful to everyone.

This article will guide you step by step in developing a uni-app calendar plug-in, and introduce how the next calendar plug-in is developed from development to release. I hope it will be helpful to you!
