layui框架学习(8:动态操作选项卡)

  Layui官网示例(参考文献3)中的选项卡部分除了介绍选项卡的样式外,还介绍了新增选项卡、删除选项卡、切换选项卡等动态操作选项卡方式,主要调用element模块中与选项卡相关的函数实现,除此之外,element模块还支持监控并处理选项卡的切换和删除事件。
  element模块中与选项卡相关的函数列表如下所示(element中支持调用tab函数动态拼接选项卡,在此没有介绍,有兴趣的话详见参考文献2):

序号函数名称函数形式说明
1tabAddelement.tabAdd(filter, options)新增选项卡Tab页,页面中通过lay-filter属性区分不同的选项卡,该属性放在选项卡的顶层元素中,可以视为选项卡的身份标识,函数第一个参数filter即指出在哪个选项卡中新增选项卡Tab页,options参数保存新增Tab页的基本信息,包括 标题(title)、内容(content,支持传入html)、标题的lay-id属性值(id),以键值对形式保存
2tabDeleteelement.tabDelete(filter, layid)删除选项卡Tab页,删除lay-filter属性值为filter的选项卡中标题lay-id值为layid的选项卡Tab页
3tabChangeelement.tabChange(filter, layid)切换选项卡Tab页,将lay-filter属性值为filter的选项卡中当前显示的内容切换为标题lay-id值为layid的选项卡Tab页

  通过调用上述函数,可以在页面中动态操作选项卡,如使用按钮操作选项卡:

	<div class="site-demo-button" style="margin-bottom: 0;">
		  <button class="layui-btn add-tab">新增Tab项</button>
		  <button class="layui-btn del-tab">删除视频Tab页</button>
		  <button class="layui-btn change-tab">切换到问答Tab页</button>
		</div>
		<div class="layui-tab" lay-filter="demo" >
		  <ul class="layui-tab-title">
		    <li class="layui-this" lay-id="Article">文章</li>
		    <li lay-id="Download">下载</li>
		    <li lay-id="QA">问答</li>
		    <li lay-id="Video">视频</li>
		  </ul>
		  <div class="layui-tab-content" >
		    <div class="layui-tab-item">
				列出当前用户的所有发布及未发布的文章。
			</div>
		    <div class="layui-tab-item layui-show">显示当前用户的上传和下载明细</div>
		    <div class="layui-tab-item">显示当前用户的提问和回答明细。</div>
		    <div class="layui-tab-item">列出当前用户所有上传的视频。</div>
		  </div>
		</div>
		<script>		
		layui.use('element', function(){
		  var element = layui.element;
		  var $ = layui.jquery;
		  
		  $('.add-tab').on('click', function(){
		      element.tabAdd('demo', {
		              title: 'MyGitHub'
		              ,content: '列出当前用户的GitHub信息。'
		              ,id: 'GitHub' 
		            });
			  element.tabChange('demo', 'GitHub');
		    });
			
			$('.del-tab').on('click', function(){
			     element.tabDelete('demo', 'Video');
			  });
			  
			$('.change-tab').on('click', function(){
			      element.tabChange('demo', 'QA');
			    });
		});
		</script>

在这里插入图片描述
  也可以使用导航操作选项卡(不知道怎么处理导航点击事件,随便在网上百度并抄了一份事件处理代码):

	<ul class="layui-nav" lay-filter="nav">
	  <li class="layui-nav-item" ><a href="javascript:;" id='add-tab'>新增Tab项</a></li>
	  <li class="layui-nav-item" ><a href="javascript:;" id='del-tab'>删除视频Tab页</a></li>
	  <li class="layui-nav-item" ><a href="javascript:;" id='change-tab'>切换到问答Tab页</a></li>
	</ul>
	<div class="layui-tab" lay-filter="demo" >
	  <ul class="layui-tab-title">
	    <li class="layui-this" lay-id="Article">文章</li>
	    <li lay-id="Download">下载</li>
	    <li lay-id="QA">问答</li>
	    <li lay-id="Video">视频</li>
	  </ul>
	  <div class="layui-tab-content" >
	    <div class="layui-tab-item">
			列出当前用户的所有发布及未发布的文章。
		</div>
	    <div class="layui-tab-item layui-show">显示当前用户的上传和下载明细</div>
	    <div class="layui-tab-item">显示当前用户的提问和回答明细。</div>
	    <div class="layui-tab-item">列出当前用户所有上传的视频。</div>
	  </div>
	</div>
	<script>
		layui.use(['element','layer'], function(){
			  var element = layui.element;
			  var $ = layui.jquery;
			  var layer = layui.layer;
			  
			  element.on('nav(nav)', function(elem){
				switch(elem.attr('id'))
				{
				    case 'add-tab':
						element.tabAdd('demo', {
								 title: 'MyGitHub'
								 ,content: '列出当前用户的GitHub信息。'
								 ,id: 'GitHub' 
							   });
						element.tabChange('demo', 'GitHub');
				        break;
				    case 'del-tab':
				        element.tabDelete('demo', 'Video');
				        break;
				    case 'change-tab':
					    element.tabChange('demo', 'QA');
				        break;				
				};
			  });
		 });
	</script>
			

在这里插入图片描述

  element模块还支持通过element.on函数监控并处理选项卡的切换和删除事件,函数的形式为element.on(‘event(过滤器值)’, callback);,event主要包括tab和tabDelete,其中tab为选项卡切换事件,tabDelete为选项卡删除事件,过滤器值指定监听页面中哪个选项卡的事件,没有值则监听所有选项卡的事件,本文以监听选项卡切换事件为例介绍其基本用法,其余请见参考文献或自行百度。

<div class="layui-tab" lay-filter="demo" >
  <ul class="layui-tab-title">
    <li class="layui-this" lay-id="Article">文章</li>
    <li lay-id="Download">下载</li>
    <li lay-id="QA">问答</li>
    <li lay-id="Video">视频</li>
  </ul>
  <div class="layui-tab-content" >
    <div class="layui-tab-item">
		列出当前用户的所有发布及未发布的文章。
	</div>
    <div class="layui-tab-item layui-show">显示当前用户的上传和下载明细</div>
    <div class="layui-tab-item">显示当前用户的提问和回答明细。</div>
    <div class="layui-tab-item">列出当前用户所有上传的视频。</div>
  </div>
</div>
<script>		
	layui.use(['element','layer'], function(){
	  var element = layui.element;
	  var layer = layui.layer;
	  
	  element.on('tab(demo)', function(data){
		  layer.msg("切换到’"+this.innerText+"‘Tab页");	
	  });
</script>

在这里插入图片描述

参考文献:
[1]B站:layui框架精讲全套视频教程
[2]https://layui.gitee.io/v2/docs/
[3]https://layui.gitee.io/v2/demo/
[4]https://github.com/layui/layui/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值