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 相关文章推荐
javascript 兼容鼠标滚轮事件
Apr 07 Javascript
关于jQuery的inArray 方法介绍
Oct 08 Javascript
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
Node.js实现简单聊天服务器
Jun 20 Javascript
JS数组的遍历方式for循环与for...in
Jul 31 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
checkbox在vue中的用法小结
Nov 13 Javascript
javascript实现前端分页功能
Nov 26 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
农民和部队如何穿矿
2020/03/04 星际争霸
使用php测试硬盘写入速度示例
2014/01/27 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
介绍一下Ruby的特点
2013/01/20 面试题
绿色学校实施方案
2014/03/31 职场文书
2015年社区国庆节活动总结
2015/07/30 职场文书
企业安全生产检查制度
2015/08/06 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript