Sortable.js 多层嵌套拖动排序

官方文档:sortable.js 中文网

DOM 结构

<div class="tree">
    <div class="node">
        <span class="node-title">node 1</span>
        <div class="node-children">
            <div class="node">
                <span class="node-title">node 1.1</span>
                <div class="node-children">
                    <div class="node">
                        <span class="node-title">node 1.1.1</span>
                    </div>
                    <div class="node">
                        <span class="node-title">node 1.1.2</span>
                    </div>
                    <div class="node">
                        <span class="node-title">node 1.1.3</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="node">
        <span class="node-title">node 2</span>
        <div class="node-children">
            <div class="node">
                <span class="node-title">node 2.1</span>
            </div>
            <div class="node">
                <span class="node-title">node 2.2</span>
            </div>
            <div class="node">
                <span class="node-title">node 2.3</span>
            </div>
        </div>
    </div>
    <div class="node">
        <span class="node-title">node 3</span>
        <div class="node-children">
            <div class="node">
                <span class="node-title">node 3.1</span>
            </div>
            <div class="node">
                <span class="node-title">node 3.2</span>
            </div>
            <div class="node">
                <span class="node-title">node 3.3</span>
            </div>
        </div>
    </div>
</div>

JavaScript

// 根节点
const tree = document.querySelector('.tree')
const sortable = new Sortable(tree, { animation: 150 })

// 分支节点
const parents = document.querySelectorAll('.node-children')
parents.forEach(parent => {
    const sortable = new Sortable(parent, { animation: 150 })
})

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 sortable.js 来实现拖动排序,并将排序结果发送到后台,您需要遵循以下步骤: 1. 引入 sortable.js 库 在页面中引入 sortable.js 库,可以从官方网站下载或使用 CDN。 2. 创建可排序的列表 使用 HTML 和 CSS 创建可排序的列表。在每个列表项中添加一个唯一的标识符,以便在排序后将其发送到后台。 3. 初始化 sortable.jsJavaScript 中初始化 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 路径。您需要根据自己的需求更改此代码以适应您的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值