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

news2025/1/8 3:42:46

  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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派下安装OpenEuler

openEuler作为华为开源的应用于嵌入式设备的操作系统&#xff0c;正在受到越来越多的关注。树莓派是一个很好的应用场景&#xff0c;这篇文章就介绍下如何在树莓派上安装openEuler。   ps&#xff1a;openEuler要求树莓派的版本是4B 1.下载openEuler镜像 镜像网址&#xff1…

【K哥爬虫普法】百度、360八年乱战,robots 协议之战终落幕

我国目前并未出台专门针对网络爬虫技术的法律规范&#xff0c;但在司法实践中&#xff0c;相关判决已屡见不鲜&#xff0c;K哥特设了“K哥爬虫普法”专栏&#xff0c;本栏目通过对真实案例的分析&#xff0c;旨在提高广大爬虫工程师的法律意识&#xff0c;知晓如何合法合规利用…

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——MapReduce工作流程

1、流程示意图 MapReduce详细工作流程&#xff08;一&#xff09; MapReduce详细工作流程&#xff08;二&#xff09; 2、流程详解 上面的流程是整个MapReduce最全工作流程&#xff0c;但是Shuffle过程只是从第7步开始到第16步结束&#xff0c;具体Shuffle过程详解&#xff0…

作为Linux C/C++程序员必备的工具

Linux系统 可以选择centOS或者ubautu server(不建议选择桌面版本的)。不建议裸机安装&#xff0c;玩坏了就特别麻烦。不建议使用有桌面版本的ubautu&#xff0c;在一定程度有桌面的版本的会消耗性能。 如果经济实力允许&#xff0c;可以购买云服务器。 参考文章: Ubuntu server…

一款基于各大企业信息API渗透工具

功能 剑指HW/SRC&#xff0c;解决在HW/SRC场景下遇到的各种针对国内企业信息收集难题 使用支持以下API&#xff0c;并支持合并数据导出 爱企查 (未登陆信息带*) 企查查&#xff08;签名失效&#xff09; 天眼查 阿拉丁 酷安市场 七麦数据 站长之家 veryvp 查询信息 IC…

15-基础加强3-单元测试日志

文章目录1.单元测试1.1概述【理解】1.2特点【理解】1.3使用步骤【应用】1.4相关注解【应用】2.日志2.1概述【理解】2.2日志体系结构和Log4J【理解】2.3入门案例【应用】1.单元测试 1.1概述【理解】 JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具…

荧光标记ATTO647N NHS,ATTO 647N SE,ATTO 647N-琥珀酰亚胺酯用于单分子检测

【中文名称】 ATTO 647N-琥珀酰亚胺酯&#xff0c;ATTO 647N-活性酯【英文名称】 ATTO 647N-NHS&#xff0c;ATTO 647N NHS&#xff0c;ATTO 647N SE&#xff0c;ATTO 647N-NHS ester【光谱图】【CAS号】N/A【分子式】C46H55ClN4O5【分子量】779.41【基团部分】 ATTO【纯度标准…

5.6配置BGP联邦和团体属性

5.3.3配置BGP联邦和团体属性 1. 实验目的 熟悉BGP联邦和团体属性的应用场景掌握BGP联邦和团体属性的配置方法2. 实验拓扑 实验拓扑如图5-6所示: 图5-6:配置BGP联邦和团体属性 3. 实验步骤 (1)IP地址的配置 R1的配…

【Jmatpro 10.0】根据材料牌号输出应力-应变曲线

我的主页&#xff1a; 技术邻&#xff1a;小铭的ABAQUS学习的技术邻主页博客园 : HF_SO4的主页哔哩哔哩&#xff1a;小铭的ABAQUS学习的个人空间csdn&#xff1a;qgm1702 博客园文章链接&#xff1a; https://www.cnblogs.com/aksoam/p/17121006.html 1.前提条件 Jmatpro …

复盘会如何开出新花样?10种方式让你开出让人惊喜的复盘会【附复盘问题列表】

复盘是每个PMO和项目经理必备的技能之一&#xff0c;咱们分享过很多复盘的技巧和方法&#xff0c;如下&#xff1a;但是大家都会有个问题&#xff0c;那就是复盘形式单一&#xff0c;团队复盘几次就会失去兴趣&#xff1f;失去兴趣之后效果自然不会太好&#xff0c;如何把让大家…

C++设计模式(17)——备忘录模式

亦称&#xff1a; 快照、Snapshot、Memento 意图 备忘录模式是一种行为设计模式&#xff0c; 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 问题 假如你正在开发一款文字编辑器应用程序。 除了简单的文字编辑功能外&#xff0c; 编辑器中还要有设置文本格…

字符设备驱动基础(三)

目录 一、上下文和并发场合 二、中断屏蔽&#xff08;了解&#xff09; 三、原子变量&#xff08;掌握&#xff09; 四、自旋锁&#xff1a;基于忙等待的并发控制机制 五、信号量&#xff1a;基于阻塞的并发控制机制 六、互斥锁&#xff1a;基于阻塞的互斥机制 七、选择…

PMP备考经验—做题方法总结

考题类型 ITTO题 根据关键字考工具技术&#xff0c;输入输出的&#xff0c;所以掌握关键字是重点&#xff0c;典型的ITTO有六个&#xff1a;收集需求工具、质量管理工具、团队建设工具、管理团队的冲突跟了、风险应对的策略以及合同类型。PS&#xff1a;答案是工具技术或者文…

SVN无法连接到服务器的各种问题原因及解决办法

SVN专业使用教程详解 第一节 安装VisualSVN Server服务器 第一步 下载SVN服务器&#xff0c;需要链接的请私信。 点击下载的执行文档进行安装 选择组件 选择在部署 VisualSVN Server 时安装VisualSVN Server 和 Administration Tools 组件。 调整初始服务器配置 或者&…

带你一步步搭建Web自动化测试框架

测试框架的设计有两种思路&#xff0c;一种是自底向上&#xff0c;从脚本逐步演变完善成框架&#xff0c;这种适合新手了解框架的演变过程。另一种则是自顶向下&#xff0c;直接设计框架结构和选取各种问题的解决方案&#xff0c;这种适合有较多框架事件经验的人。本章和下一张…

【Django】缓存、中间件、分页、生成csv文件

一、缓存 定义&#xff1a;可以更快的读取数据的介质。一般用来存储临时数据&#xff0c;常用介质的是读取数据很快的内存。 缓存场景&#xff1a; 1、博客列表页 2、电商商品详情页 场景特点&#xff1a;缓存的地方&#xff0c;数据变动频率较少 1、数据库缓存 当把一次负…

研究 “B表里的数据是否全部都在A表里“ 的问题

背景 研究 “B表里的数据是否全部都在A表里” 的问题&#xff0c;那种写法比较合理效率高&#xff1f; 假设有A表和B表&#xff0c;B表通过自身外键和A表关联&#xff0c;查出B表中的外键值不在A中的。 过程 假设我们有t_master和t_pet表&#xff0c;即主人和宠物表&#x…

TPM密钥管理、使用

前面讲过证书相关内容&#xff0c;除了在软件方面有所应用外&#xff0c;在硬件方面也有很多应用。本次讲一下TPM相关的内容。 一、TPM介绍 1.1背景 TCG基于硬件安全的架构是为应对1990s后期日益增多的复杂恶意软件攻击应用而生的。当时以及现在&#xff0c;抵御PC客户端网络…

蓝桥杯刷题025——推导部分和(加权并查集)

2022省赛 问题描述 对于一个长度为 N 的整数数列 ​, 小蓝想知道下标 l 到 r 的部 分和是多少? 然而, 小蓝并不知道数列中每个数的值是多少, 他只知道它的 M 个部分和 的值。其中第 i 个部分和是下标 ​ 到 的部分和 , 值是 。 输入格式 第一行包含 3 个整数 N、M 和 Q 。分…

Java 如何通过JDBC 操作MySQL数据库

Java 如何通过JDBC 操作MySQL数据库开发准备实际开发1&#xff0c;加载并注册JDBC 驱动2&#xff0c;创建数据库连接3&#xff0c;创建Statement 对象4&#xff0c;遍历查询结果5&#xff0c;关闭连接&#xff0c;释放资源完整代码实现JDBC 是Java 数据库连接&#xff0c;即 Ja…