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:void(0)的真正含义实例分析
Aug 20 Javascript
javascript CSS画图之基础篇
Jul 29 Javascript
window.name代替cookie的实现代码
Nov 28 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
JavaScript 消息框效果【实现代码】
Apr 27 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
javascript实现的上下无缝滚动效果
Sep 19 Javascript
vue异步加载高德地图的实现
Jun 19 Javascript
使用Angular material主题定义自己的组件库的配色体系
Sep 04 Javascript
js实现随机抽奖
Mar 19 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
js面向对象编程总结
2017/02/16 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
python range实例用法分享
2020/02/06 Python
python模拟斗地主发牌
2020/04/22 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
关于python中remove的一些坑小结
2021/01/04 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
公务员检讨书
2014/11/01 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript