首页 > 其他分享 >EasyUi之Tabs(选项卡)

EasyUi之Tabs(选项卡)

时间:2024-03-25 11:34:59浏览次数:27  
标签:index 选项卡 EasyUi bookTabs Tabs tabs var 页面

原文链接:https://blog.csdn.net/qianbihua00/article/details/115392143

什么是Tabs

选项卡是最流行的导航模式之一(与菜单栏和垂直导航一样)。 选项卡最大的优点是用户很熟悉,而且经常是持久的内容,所以即使用户在网站或应用程序中跳出刚浏览过的内容,他们也不会迷失。

官方示例

 成品示例

Tabs的使用案例

1、通过标签创建选项卡


通过标签可以更容易的创建选项卡,我们不需要写任何Javascript代码。只需要给标签添加一个类ID’easyui-tabs’。每个选项卡面板都通过子标签进行创建,用法和panel(面板)相同。

2. 通过Javascript创建选项卡

下面的代码演示如何使用Javascript创建选项卡,当该选项卡被选择时将会触发’onSelect’事件。

 

添加新的选项卡面板
添加一个新的包含小工具菜单的选项卡面板,小工具菜单图标(8x8)被放置在关闭按钮之前。

 获取选择的选项卡

 

 

 Tabs的事件

 Tabs的方法

 

 Tabs面板

 

创建一个选项卡
昨天学习了树(tree)形结构 今天来学习如何创建一个选项卡

我们要实现的功能
1.首先我们需要一个首页面 固定不动
2.其次当我们去点击 新增的时候要出现新增的选项卡
3.再打开未上架时要切换到未上架的tab页面
4.点击书籍管理页面还有订单管理页面时不会弹出页面 应为他是管理层 而不是显示层
5.当我们再次点击新增页面时不会要再次弹出一个页面 只能有一个新增页面 其他页面同理

 

 

有了思路之后我们开始第一个一个去实现

首先时我们的第一个固定的首页面 应为是展现再center上面所有再center里面套一个div 写上属性就好

			<div data-options="region:'center',title:'Center'">
			<div id="bookTabs" class="easyui-tabs" style="width:100%;height:100%;">   
    			<div title="首页" style="padding:20px;display:none;">   
      				  来吧展示   
   				</div>  
			</div>  
		</div>

  

 

然后是是当我们去点击 新增的时候要出现新增的选项卡

我们再文档里面找到创建新的选项卡C到我们前面写好的index.js里面去

其中booktabs是我们前面给的id title:node.text node是节点 text是我们要显示出来的文本content是现实的内容

 接下来的数据库找到url对应的路径 新建两个jsp文件 这里只写两个方便测试就行

 新增界面还有未上架界面

 测试 没问题 已下架没有写jsp页面

 

 

接下来是我们最后两个
点击书籍管理页面还有订单管理页面时不会弹出页面 应为他是管理层 而不是显示层
当我们再次点击新增页面时不会要再次弹出一个页面 只能有一个新增页面 其他页面同理

我们先写if判断是否存再如果存在就切换选项卡 如果不存在就新建一个选项卡 然后找到嵌套的路径
再在else里面再判断如果不为空再新建一个tabs

$(function(){
	var ctx = $("#ctx").val();
	
	$('#tt').tree({
	    url: ctx + '/permission.action?methodName=menuTree',
	    	onClick: function(node){
	    		//alert(node.text);  // 在用户点击的时候提示
//	    		debugger
//	    		目前,jsp中有一个静态的首页的选项卡tab,当浏览器请求jsp的时候,会调用下列代码,造成页面看到两个tab页
//	    		我们的需求是 浏览器请求index.jsp 看到首页一个选项卡,当点击某一个树形菜单的一个元素,新增一个选项卡
//	    		目前存再的问题,重复的tab页反复打开
//	    		针对于上面存再的问题进行分析,判断当前是否存再对应的title的选项卡
//	    		如果存再,就切换到对应的选项卡,如果不存再,那么重新答案开一个选项卡
//	    		<iframe scrolling="no" frameborder="0" src="" width="99%" height="99%"></iframe>
//	    		$('boolTabs').tabs('exists',node.text);
	    		if($('#bookTabs').tabs('exists',node.text)){
	    			$('#bookTabs').tabs('select',node.text);
	    		}else{
//	    			新增选项卡
//	    			存再问题 ,非叶子节点按照开发角度来说数不能打开页面的
//	    			分析:非叶子节点都没有跳转页面的
	    			var src= node.attributes.self.url;
	    			if(src){
	    				var content = '<iframe scrolling="no" frameborder="0" src="'+ctx+src+'" width="99%" height="99%"></iframe>';
			    		$('#bookTabs').tabs('add',{    
			    		    title:node.text,    
			    		    content:content,    
			    		    closable:true,    
			    		    tools:[{    
			    		        iconCls:'icon-mini-refresh',    
			    		        handler:function(){    
			    		            alert('refresh');    
			    		        }    
			    		    }]    
			    		}); 
	    			 }
	    			
	    		}
	    		}	
	    });

  测试
书籍管理没反应

 只能点一次

 

右键关闭tabs

我们一般在页面上开tabs开多了一个一个点很麻烦 所有可以搞个右键菜单关闭tabs
我借鉴了下别人的代码和思路

我们还是再index.jsp写上右击事件中弹出的HTMl内容

 

 

鼠标的右键事件是在EasyUI中通过绑定contextmenu来实现,可以显示右键的选项显示的位置。

其中tabs的关闭时通过操作tabs的索引号进行各种关闭的

 

tabs-header是再页面头部区域点击右键才有效果
recmenu是上面去的id

		$(".tabs-header").bind('contextmenu',function(e){           
    		e.preventDefault();    
   			$('#rcmenu').menu('show', {    
          		left: e.pageX,    
          		top: e.pageY    
      		});    
    	});    
		//关闭所有标签页    
		$("#closeall").bind("click",function(){
			var tablist = $('#bookTabs').tabs('tabs');
			for(var i=tablist.length-1;i>0;i--){
				$('#bookTabs').tabs('close',i);
			}
		});
		//关闭当前标签页
		$("#closecur").bind("click",function(){
			var tab = $('#bookTabs').tabs('getSelected');
			var index = $('#bookTabs').tabs('getTabIndex',tab);
			$('#bookTabs').tabs('close',index);
		});
		
	  //关闭其他页面(先关闭右侧,再关闭左侧)    
	  $("#closeother").bind("click",function(){    
	      var tablist = $('#bookTabs').tabs('tabs');    
	      var tab = $('#bookTabs').tabs('getSelected');    
	      var index = $('#bookTabs').tabs('getTabIndex',tab);    
	      for(var i=tablist.length-1;i>index;i--){    
	          $('#bookTabs').tabs('close',i);    
	      }    
	      var num = index-1;    
	      if(num < 1){    
	          return;    
	      }else{    
	          for(var i=num;i>=1;i--){    
	              $('#bookTabs').tabs('close',i);    
	          }    
	          $("#bookTabs").tabs("select", 1);    
	      }    
	  });    
	  //关闭右边的选项卡  
	  $("#closeright").bind("click",function(){    
	      var tablist = $('#bookTabs').tabs('tabs');    
	      var tab = $('#bookTabs').tabs('getSelected');    
	      var index = $('#bookTabs').tabs('getTabIndex',tab);    
	      for(var i=tablist.length-1;i>index;i--){    
	          $('#bookTabs').tabs('close',i);    
	      }    
	  });    
	  //关闭右边的选项卡  
	  $("#closeleft").bind("click",function(){    
	      var tablist = $('#bookTabs').tabs('tabs');    
	      var tab = $('#bookTabs').tabs('getSelected');    
	      var index = $('#bookTabs').tabs('getTabIndex',tab);    
	      var num = index-1;    
	      if(num < 1){    
	          return;    
	      }else{    
	          for(var i=num;i>=1;i--){    
	              $('#bookTabs').tabs('close',i);    
	          }    
	          $("#bookTabs").tabs("select", 1);    
	      }     
	  });    

  测试:
关闭全部

 

 之关闭当前页面

 成功

 除了当前页面其他全部关闭

 成功

 已当前选中为中心 右侧全部关闭

 成功

 已选中点为中心左侧全部关闭

 成功

 

 

标签:index,选项卡,EasyUi,bookTabs,Tabs,tabs,var,页面
From: https://www.cnblogs.com/Dongmy/p/18094026

相关文章

  • chrome.tabs.sendMessage和chrome.runtime.sendMessage的用法及区别
    在Chrome扩展开发中,chrome.tabs.sendMessage和chrome.runtime.sendMessage是用于不同目的的消息发送API,它们的主要区别在于消息的目标对象和发送范围:chrome.tabs.sendMessage:用于在扩展内的不同页面之间发送消息。消息的目标对象是指定的标签页或标签页中的contentsc......
  • 【图像拼接/视频拼接】论文精读:Eliminating Warping Shakes for Unsupervised Online
    第一次来请先看这篇文章:【图像拼接(ImageStitching)】关于【图像拼接论文精读】专栏的相关说明,包含专栏使用说明、创新思路分享等(不定期更新)图像拼接系列相关论文精读SeamCarvingforContent-AwareImageResizingAs-Rigid-As-PossibleShapeManipulationAdaptiveAs......
  • 修改el-tabs的样式
    element-ui代码<template><divstyle="width:800px;"><el-tabsv-model="activeName"type="card"@tab-click="handleClick"><el-tab-panelabel="用户管理"name="first">......
  • EasyUI修改datebox的默认日期格式
    方法一:<script>functionmyformatter(date){vary=date.getFullYear();varm=date.getMonth()+1;vard=date.getDate();varh=date.getHours();varmin=date.getMinutes();var......
  • QTabWidget的高度取决于当前选项卡的高度
    QTabWidget的高度自适应当前选项卡的高度,可以通过设置其他选项卡的QSizePolicy为Ignored,connect(ui->tabWidget,SIGNAL(currentChanged(int)),this,SLOT(updateSizes(int)));voidMainWindow::updateSizes(intindex){for(inti=0;i<ui->tabWidget->count();i++)......
  • jquery ui和easyui的区别是什么?
    EasyUI是某公司开发的一套对私免费,对公收费的UI库,基于GNU开源协议,不过只有付费了才能买到他们的源代码。是目前枯人接触过最优秀的一款基于jQuery的UI库,整体打包后不到300k,几乎包含所有的常用组件。jqueryui和easyui的区别jqueryui是jQuery插件,是由jQuery官方维护的UI方向的插件;e......
  • Qt 设置tabWidget选项卡靠右上
    tabWidget中,默认选项卡是在左上方的,如果通过QTabWidget中的属性调整位置,也只能是上下左右,及tabPosition中的东南西北 如果有需求需要其在右上方,则可以选择QWidget属性中的layoutDirection,改为RightToLeft 其他方向上如果想改变靠左靠右的顺序也是同理......
  • fastAdmin中手动添加列表的选项卡
    一、效果:点击选项卡筛选符合的数据 二:实现方法:1.index.html里面写上列表: <divclass="panel-heading"> {:build_heading()} <ulclass="navnav-tabs"data-field="type"> <liclass="active"> <ahref=&......
  • easyui-datagrid 加载数据 方法二 ( 自定义返回值 json方式)
    效果图 html部分<tableclass="my_table"><tr><tdclass='my_dt_label'>主叫号码:</td><tdclass='my_dt_field'><inputtype='text'id='select_callerid&......
  • easyui-datagrid 加载数据 方法一( 数据绑定方式 )
     效果图 html 部分<divstyle='padding:0px0px7px12px;'><tableclass="my_table"><tr><tdclass='my_dt_label'>姓名:</td><tdclass='......