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 相关文章推荐
Jquery乱码的一次解决过程 图解教程
Feb 20 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
微信小程序之小豆瓣图书实例
Nov 30 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
在vue项目中,使用axios跨域处理
Mar 07 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
vue中keep-alive,include的缓存问题
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
PHP的分页功能
2007/03/21 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
JavaScript触发器详解
2007/03/10 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
大学生社会实践自我鉴定
2014/03/24 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
JS代码编译器Monaco使用方法
2021/06/11 Javascript