《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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值