layui实现tab的添加拒绝重复的方法


Posted in Javascript onSeptember 04, 2019

layui中tab的添加:重复添加,没有自动跳转肯定让你烦了很久吧,我也是花了很久才解决的

前提是这样的:我点击不同按钮生成对应tab,而且再点击前已经有一个tab了(比如说:‘首页‘,个人需求而已)

我的思路是这样的:每添加一个tab用链表存储其id,通过id判断是否存在,并确定是添加tab还是跳转到指定tab。

删除时,监听tab的删除,然后从链表里删除对应id。但是在element.on('tabDelete',function(data){});中得不到你删除tab的id。有幸的是,能得到下标:data.index。我用其表示链表中的‘第几个元素',因为data.index的值是“流动”的,以这种方式表示(考虑到操作的方式)很适合用链表来形容(建议你自己console.log(data.index)来看看)。

好了,上代码

list.js:我把它写在了公共类里,你按照你自己的需求来

function Node(v){
  this.value=v;
  this.next=null;
 }
function ArrayList(){
	 this.head=new Node(null);
	  this.tail = this.head;
	  //在尾部添加节点
	  this.append=function(v){
	   node = new Node(v);
	   this.tail.next=node;
	   this.tail=node;
	  }
	  //在指定位置插入
	  this.insertAt=function(ii,v){
	   node = new Node(v);
	   //找到位置的节点
	   tempNode=this.head;
	   for(i=0;i<ii;i++){
	    if(tempNode.next!=null){
	     tempNode=tempNode.next;
	    }else{
	     break;
	    }
	   }
	   node.next=tempNode.next;
	   tempNode.next = node;
	  }
	  //删除指定节点
	  this.removeAt=function(ii){
	   node1=this.head; //要删除节点的前一个节点
	   for(i=0;i<ii;i++){
	    if(node1.next!=null){
	     node1=node1.next;
	    }else{
	     break;
	    }
	   }
	   node2=node1.next; //要删除的节点
	   if(node2!=null){
	    node1.next = node2.next;
	    if(node2.next==null){
	      this.tail=node1;
	     }
	   }
	  }
	  //查找值
	  this.find=function(v){
	  	 var nodefin=this.head;
	  	  while(nodefin.value!=v){
	  	  	if(nodefin.next!=null){
	  	      nodefin=nodefin.next;
	  	  	}else{break;}
	  	  }
	  	  return nodefin;
	  }
	  //查找某个节点的值
	  this.findv=function(ii){
	  	var nodefv = this.head;
	  	for(var i =0;i<ii;i++){
	  		if(nodefv.next!=null){
	  			nodefv=nodefv.next;
	  		}
	  	}
	  	return nodefv;
	  }
	  //显示连表中的值
	  this.show=function()
	  {
	  	var Node=this.head;
	  	while(Node!=null)
	  		{
	  		 console.log(Node.value);
	  		 Node=Node.next;
	  		}
	  }
}

js:

/**
  * 点击节点添加tab
  * title:选项卡标题,id:选项卡的id,url:选项卡所显示的内容《用ifream》
  */
 var arry = new ArrayList();
 arry.append("xtsy");//这就是我的首页,你如果不需要的话,删除即可
 function tabAdd(title,id,url)
 {
  //判断tab是否存在
  if(arry.find(id).value!=id){
   element.tabAdd('tab', {
     title: title //用于演示
     ,content:"<iframe src='"+ url
     + "' frameborder='0' style='width:100%;height:470px;'></iframe>"
     ,id:id
    });
   arry.append(id);
  } 
  //切换tab
 element.tabChange('tab',id);
 }
//监听tab删除
 element.on('tabDelete', function(data){
  arry.removeAt(data.index);
 });

以上这篇layui实现tab的添加拒绝重复的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
showModalDialog 和 showModelessDialog
Jan 22 Javascript
Prototype Hash对象 学习
Jul 19 Javascript
juqery 学习之三 选择器 简单 内容
Nov 25 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
Mar 25 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
Sep 12 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
Dec 04 Javascript
详解JavaScript基于面向对象之创建对象(1)
Dec 10 Javascript
element-ui 关于获取select 的label值方法
Aug 24 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
Apr 29 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
Feb 28 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
Nov 12 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
Sep 04 #Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 04 #Javascript
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 #Javascript
layui 表单标签的校验方法
Sep 04 #Javascript
解决layui 表单元素radio不显示渲染的问题
Sep 04 #Javascript
对layer弹出框中icon数字参数的说明介绍
Sep 04 #Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 #Javascript
You might like
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
jquery五角星评分插件示例分享
2014/02/21 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
Python变量类型知识点总结
2019/02/18 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
C语言笔试集
2012/07/24 面试题
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
21岁生日感言
2014/02/27 职场文书
小学班主任寄语大全
2014/04/04 职场文书
捐助倡议书范文
2014/04/15 职场文书
挂靠协议书范本
2014/04/22 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript