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 相关文章推荐
setInterval计时器不准的问题解决方法
May 08 Javascript
jquery获取html元素的绝对位置和相对位置的方法
Jun 20 Javascript
jQuery中大家不太了解的几个方法
Mar 04 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
jQuery视差滚动效果网页实现方法经验总结
Sep 29 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
原生JS实现幻灯片
Feb 22 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
Jan 21 Javascript
Node.js fs模块原理及常见用途
Oct 22 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
php Smarty 字符比较代码
2011/02/27 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
php取得字符串首字母的方法
2015/03/25 PHP
php生成验证码函数
2015/10/20 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
在 Python 中利用 Pool 进行多线程
2022/04/24 Python
muduo TcpServer模块源码分析
2022/04/26 Redis
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL