使用sortablejs 对分层数据排序

在项目中,需要对有层级关系的数据进行排序,如图

Item 1 可以在item 2 、item 3 、item 4 等之间进行拖拽,但是item 1.1 item 1.2 等 只能在item 1 里面拖拽。拖拽的范围只能是该item 所在的层级里面拖拽,不能超出,也不能去其他层级。

代码如下:

复制代码
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sortable.js中文网</title>
    <link rel="stylesheet" href="https://sortablejs.com/assets/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/monokai-sublime.min.css">
    <link rel="stylesheet" href="https://sortablejs.com/assets/css/Features-Clean.css">
</head>

<body>

    <div class="features-clean"></div>

    <div class="container">
      <div class="col">
        <div id="nested" class="row">

          <div id="nestedDemo" class="list-group col nested-sortable">
              <div class="list-group-item nested-1">Item 1
                  <div class="list-group nested-sortable" id="nested-1">
                    <div class="list-group-item nested-2">Item 1.1</div>
                    <div class="list-group-item nested-2">Item 1.2
                      <div class="list-group nested-sortable" id="nested-1-2">
                        <div class="list-group-item nested-3">Item 1.2.1</div>
                        <div class="list-group-item nested-3">Item 1.2.2</div>
                        <div class="list-group-item nested-3">Item 1.2.3</div>
                        <div class="list-group-item nested-3">Item 1.2.4</div>
                      </div>
                    </div>
                    <div class="list-group-item nested-2">Item 1.3</div>
                    <div class="list-group-item nested-2">Item 1.4</div>
                  </div>
              </div>
              <div class="list-group-item nested-1">Item 2</div>
              <div class="list-group-item nested-1">Item 3</div>
              <div class="list-group-item nested-1">Item 4
                <div class="list-group nested-sortable" id="nested-4">
                  <div class="list-group-item nested-2">Item 4.1</div>
                  <div class="list-group-item nested-2">Item 4.2</div>
                  <div class="list-group-item nested-2">Item 4.3</div>
                  <div class="list-group-item nested-2">Item 4.4</div>
                </div>
              </div>
              <div class="list-group-item nested-1">Item 5</div>
          </div>
        </div>
      </div>
    </div>


    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.0/js/bootstrap.bundle.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/languages/javascript.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.8.3/Sortable.min.js"></script>
    <script src="https://sortablejs.com/assets/js/theme.js"></script>

    <script>

      new Sortable(document.querySelector('#nestedDemo'),{
        handle: '.list-group-item', // handle's class
        animation: 150
      });
      new Sortable(document.querySelector('#nested-1'),{
        handle: '.list-group-item', // handle's class
        animation: 150
      });
      new Sortable(document.querySelector('#nested-1-2'),{
        handle: '.list-group-item', // handle's class
        animation: 150
      });
      new Sortable(document.querySelector('#nested-4'),{
        handle: '.list-group-item', // handle's class
        animation: 150
      });

    </script>
    
</body>

</html>
相关推荐
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
llz_1127 天前
web-第四次课后作业
前端·spring boot·web
天山@1238 天前
电商系统Web渗透测试实战学习笔记
web·电商系统
xcLeigh9 天前
鸿蒙平台 KeePass 密码管理器适配实战:从 Windows 到 鸿蒙PC 的 Electron 迁移指南
windows·electron·web·harmonyos·加密算法·keepass
一拳一个娘娘腔9 天前
【第五期】漏洞攻防-逻辑篇:越权与支付漏洞 —— 为什么改个参数就能“0元购”?
安全·web安全·web
持敬chijing9 天前
Web渗透之前后端漏洞-文件下载漏洞
sql·web安全·网络安全·网络攻击模型·web
飞天狗11111 天前
零基础JavaWeb入门——第2课:让网页“活”起来 —— JSP是什么?
java·开发语言·前端·后端·web
曲幽11 天前
别只盯着GitBook了!这个文档神器让你的笔记秒变网站
web·markdown·docsify·seo·gitbook·vuepress·document·index
Ab_stupid11 天前
CTF-WEB培训笔记
笔记·web
持敬chijing12 天前
Web渗透之SQL注入总结
sql·安全·web安全·网络安全·网络攻击模型·web