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 相关文章推荐
比较不错的JS/JQuery显示或隐藏文本的方法
Feb 13 Javascript
jquery五角星评分插件示例分享
Feb 21 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
May 15 Javascript
jQuery on方法传递参数示例
Dec 09 Javascript
JavaScript实现定时隐藏与显示图片的方法
Aug 06 Javascript
javascript的列表切换【实现代码】
May 03 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
关于Vue单页面骨架屏实践记录
Dec 13 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
Jan 05 Javascript
React组件refs的使用详解
Feb 09 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
vue监听dom大小改变案例
Jul 29 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
一段防盗连的PHP代码
2006/12/06 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
PHP文件上传类实例详解
2016/04/08 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python3搜索及替换文件中文本的方法
2015/05/22 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
Python文件操作基础流程解析
2020/03/19 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
sort命令的作用和用法
2013/08/25 面试题
家长评语和期望
2014/02/10 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
白莲教口号
2014/06/18 职场文书
单位授权委托书范文
2014/08/02 职场文书
新生入学欢迎词
2015/01/26 职场文书
公积金接收函格式
2015/01/30 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
HAM-2000摩机图
2021/04/22 无线电
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL