《layui宇宙版教程》:穿梭框组件transfer

《Layui宇宙版教程》提供2000人的QQ群进行交流学习,QQ群号:1046961650,或通过手机QQ扫描二维码进入:

 

1.26 穿梭框组件transfer

模块加载名称:transfer。

1.26.1 快速使用

transfer组件可以进行数据的交互筛选。

 

  测试代码如下:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1' //绑定元素

                  ,

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.26.2 基础参数

目前transfer组件提供如图1-xx所示的基础参数,可根据需要进行相应的设置。

 

1.26.3 属性title

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

1.26.4 属性value

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              value: [2, 3],

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

1.26.5 属性showSearch

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              showSearch: true,

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.26.6 属性width和height

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              width: 500,

              height: 500,

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.26.7 属性text

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [],

               showSearch: true,

              text: {

                  none: '无数据', //没有数据时的文案

                  searchNone: '无匹配数据' //搜索无匹配数据时的文案

              },

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.26.8 属性parseData

数据格式解析的回调函数,用于将任意数据格式解析成transfer组件规定的数据格式,如图1-xx所示的是合法的数据格式。

 

然而很多时候返回的数据格式可能并不符合规范,如图1-xx所示。

 

这时候需要使用属性parseData将其解析成transfer组件所规定的数据格式。

 

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "id": "1",

                  "name": "李白"

              }, {

                  "id": "2",

                  "name": "杜甫"

              }, {

                  "id": "3",

                  "name": "贤心"

              }],

              parseData: function(res) {

                  return {

                     "value": res.id, //数据值

                     "title": res.name, //数据标题

                     "disabled": res.disabled, //是否禁用

                     "checked": res.checked //是否选中

                  }

              },

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

1.26.9 左右穿梭的回调

当数据在左右穿梭时触发,回调返回当前被穿梭的数据。

 

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

               elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              onchange: function(data, index) {

                  console.log(data); //得到当前被穿梭的数据

                  console.log(index); //如果数据来自左边,index0,否则为s1

              },

              id: 'demo1' //定义索引

           });

       </script>

    </body>

</html>

 

1.26.10 基础方法

目前所开放的所有基础方法如图1-xx所示。

 

1.26.11 获得右侧数据

穿梭框的右侧数据通常被认为是选中数据,因此需要得到它并提交到后台。

 

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <input type="button" id="mybutton" value="取值" />

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              id: 'demo1' //定义索引

           });

 

           $(document).ready(function() {

              $("#mybutton").click(function() {

                  var getData = transfer.getData('demo1');

                  var test = "test";

              });

 

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.26.12 重载

重载一个已经创建的组件实例,被覆盖新的基础属性。

 

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div id="test1"></div>

       <input type="button" id="mybutton" value="重载" />

       <script>

           var transfer = layui.transfer;

           //渲染

           transfer.render({

              elem: '#test1', //绑定元素

              title: ['标题1', '标题2'],

              data: [{

                  "value": "1",

                  "title": "李白",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "2",

                  "title": "杜甫",

                  "disabled": "",

                  "checked": ""

              }, {

                  "value": "3",

                  "title": "贤心",

                  "disabled": "",

                  "checked": ""

              }],

              id: 'demo1' //定义索引

           });

 

           $(document).ready(function() {

              $("#mybutton").click(function() {

                  //可以重载所有基础参数

                  transfer.reload('demo1', {

                     title: ['新列表1', '新列表2']

                  });

              });

           });

       </script>

    </body>

</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui 穿梭框(Transfer)是一个用于在两个列表之间移动数据的组件。它可以通过前后端的交互来获取和更新数据。下面是两种实现数据交互的方法: 1. 后端获取数据:通过后端接口获取数据,并将数据传递给穿梭组件。在后端,你可以使用任何你熟悉的编程语言和框架来实现数据的获取和处理。在前端,你需要使用 layui穿梭组件,并通过 AJAX 请求将数据传递给后端接口。具体的实现步骤如下: - 在前端页面中,创建一个 div 元素,并设置一个唯一的 id,用于放置穿梭组件。 - 在后端,创建一个接口用于获取数据。你可以使用任何你熟悉的后端框架来实现这个接口。 - 在前端的 JavaScript 代码中,使用 layui穿梭组件,并通过 AJAX 请求将数据传递给后端接口。 - 在后端接口中,获取请求中的数据,并进行相应的处理。然后将处理后的数据返回给前端。 - 在前端的 JavaScript 代码中,接收后端返回的数据,并将数据传递给穿梭组件进行展示。 以下是一个示例代码: ```html <div id="test4" class="demo-transfer"></div> ``` ```javascript layui.use(['transfer'], function(){ var transfer = layui.transfer; // 通过 AJAX 请求获取数据 $.ajax({ url: 'your_backend_api_url', type: 'GET', success: function(res){ // 将数据传递给穿梭组件 transfer.render({ elem: '#test4', data: res.data // 假设后端返回的数据为 {data: []} }); } }); }); ``` 2. 前端获取数据:在前端页面中,你可以直接定义一个数组来存储数据,并将数据传递给穿梭组件。具体的实现步骤如下: - 在前端页面中,创建一个 div 元素,并设置一个唯一的 id,用于放置穿梭组件。 - 在前端的 JavaScript 代码中,定义一个数组来存储数据,并将数据传递给穿梭组件进行展示。 以下是一个示例代码: ```html <div id="test4" class="demo-transfer"></div> ``` ```javascript layui.use(['transfer'], function(){ var transfer = layui.transfer; // 定义数据数组 var data = [ {value: '1', title: '选项1'}, {value: '2', title: '选项2'}, {value: '3', title: '选项3'} ]; // 将数据传递给穿梭组件 transfer.render({ elem: '#test4', data: data }); }); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值