easyUI的tab选项卡以及右击菜单

easyui之菜单导航切换Tab 1, 主页HTML 引包 DIV设置north(上,标题)south(下)west(左,菜单)east(右)center(居中,主工作区,Tab选项卡)                                                  首页                       2, 主页JS 菜单 阅读详情

tree组件加上tab选项卡

前言

之前的博客讲过了MySQL+mvc实现动态的tree组件,这次,我们来讲讲点击tree的叶子节点后出现的选项卡效果如何实现。

(用之前讲述tree的话来说,叶子节点就是辈分最小的一个)

实现

首先看看实现效果:
在这里插入图片描述
首先,我们思考,我们一般进入类似的界面,都是有一个默认打开的首页界面,所以我们需要在jsp界面写一个easyUI中的选项卡组件:

  <div id="tabs" class="easyui-tabs" style="width:100%;height:100%;">   
	 <div   title="首页" style="padding:20px;display:none;">   
		首页一般在后台管理,放各种数据指标(各个模块的使用情况、数据量、报表)   
		
		//这个菜单是用来做右击菜单的
		<div id="rcmenu" class="easyui-menu" style="">
		<div data-options="iconCls:'icon-cancel'" id="closecur">
			关闭
		</div>
		
		<div id="closeall">
			关闭全部
		</div>
		
		<div id="closeother">
			关闭其他
		</div>
		
		<div class="menu-sep"></div>
			<div id="closeright">
				关闭右侧标签页
			</div>
			
			<div id="closeleft">
				关闭左侧标签页
			</div>
		</div>
		
	 </div>  
</div>  

然后我们的需求是:点击左侧tree的叶子节点时,需要新增一个选项卡那么在js代码中我们需要为tree增加点击事件

而在新增选项卡的时候,我们需要考虑会遇到的问题:

关于该节点对应的选项卡已打开?

那么我们点击该节点时是不需要新增选项卡的,而是切换选项卡至节点对应的选项卡。

关于非叶子节点不需要打开新的选项卡的问题

由于我做的tree中的数据来自于数据库,在设计数据库的时候,叶子节点是有路径的,即点击时打开的面板对应的页面的路径,所以,在数据库中非叶子节点是不存在路径的,我们可以直接用路径判断,如果是空的就不需要新增选项卡。

在这里插入图片描述

$(function(){
	$('#tt').tree({
			url:$('#ctx').val()+ '/menu.action?methodName=menuTree',
				onClick: function(node){
				//判断节点对应的选项卡是否存在
					if($('#tabs').tabs('exists',node.text)){//返回的是boolean类型的值
						//切换选项卡
						$('#tabs').tabs('select',node.text);
					} else{
						//新增选项卡
						var  src=node.attributes.self.menuURL;
						if(src){
							var content='<iframe scrolling="no" frameborder="0" src="'+src+'" width="99%" height="99%"></iframe>';
							$('#tabs').tabs('add',{    
							    title:node.text,    
							    content:content,    
							    closable:true,    
							    tools:[{    
							        iconCls:'icon-mini-refresh',    
							        handler:function(){    
							            alert('refresh');    
							        }    
							    }]    
							});  
						}
					}
				}
	});

	
	//展示右击菜单
	$('.tabs-header').bind('contextmenu',function(e){
		e.preventDefault();
		$('#rcmenu').menu('show', {
			left: e.pageX,
			top: e.pageY
		});
	});
	//关闭当前标签页
	$('#closecur').bind("click",function(){
		var tab = $('#tabs').tabs('getSelected');//获取选择的选项卡
		var index = $('#tabs').tabs('getTabIndex',tab);//获取该选项卡的索引
		$('#tabs').tabs('close',index);//将它关闭
	});
	//关闭所有标签页
	$('#closeall').bind("click",function(){
		var tablist = $('#tabs').tabs('tabs');//获取所有选项卡的面板
		for(var i=tablist.length-1;i>=0;i--){
			$('#tabs').tabs('close',i);//循环将它们都关了
		}
	});
	//关闭非当前标签页(先关闭右侧,再关闭左侧)//
	$("#closeother").bind("click",function(){
		var tablist = $('#tabs').tabs('tabs');
		var tab = $('#tabs').tabs('getSelected');
		var index = $('#tabs').tabs('getTabIndex',tab);
		for(var i=tablist.length-1;i>index;i--){
			$('#tabs').tabs('close',i);
		}
		var num = index-1;
		for(var i=num;i>=0;i--){
			$('#tabs').tabs('close',0);
		}
	});
	//关闭当前标签页右侧标签页
	$("#closeright").bind("click",function(){
		var tablist = $('#tabs').tabs('tabs');
		var tab = $('#tabs').tabs('getSelected');
		var index = $('#tabs').tabs('getTabIndex',tab);
		for(var i=tablist.length-1;i>index;i--){//循环从后面开始关闭,根据条件到自己的时候结束
			$('#tabs').tabs('close',i);
		}
	});
	//关闭当前标签页左侧标签页
	$("#closeleft").bind("click",function(){
		var tab = $('#tabs').tabs('getSelected');
		var index = $('#tabs').tabs('getTabIndex',tab);
		var num = index-1;
		for(var i=0;i<=num;i++){
			$('#tabs').tabs('close',0);//一直删除第一个到自己结束
		}
	});

	
})

选项卡的右击菜单需要的js代码就是上面这部分。

这是效果:
在这里插入图片描述

总结

冲鸭冲鸭,有问题欢迎留言,看到都会回哦!

easyui-tabs判断选项卡tab不重复的另一种方式,不用title和index判断 日常开发中,在一个页面里利用选项卡和iframe框架加载不同的页面,这种开发模式比较便利和普遍。本人用的是easyui框架。 easyui-tabs判断选项卡是否存在通用的方法是用exits方法,可以找到很多例子。 但是如果菜单存在重复名称,再用这种方式判断就不灵了。研究了好久,终于找到一种不用title和index判断是否存在重复选项卡的方式。 先看动态添加tab的代码: //添加选项... 阅读详情

相关推荐

HFSS实战:手把手教你设计一款小型化圆极化微带天线(附仿真文件)

本文详细介绍了使用HFSS设计小型化圆极化微带天线的完整流程,包括工程初始化、辐射贴片设计、仿真设置与优化等关键步骤。通过实战案例,帮助工程师掌握圆极化天线设计技巧,解决轴比控制和耦合馈电匹配等核心问题,适用于物联网终端和便携式设备应用。

weixin_32770423的博客 338

jQuery EasyUI_02 快速入门 tree树形菜单&选项卡

一、全局path定义 形式:<base href=""> base:引入路径 作用:标准化路径格式为全路径 base标签:base的标签的href属性里面的内容会自动添加到在hread标签里面的引入的路径前面 <base href = "${pageContext.request.servletContext.contextPath}/static/"> var globalPath = "......

m0_60786924的博客 1877

本地部署 pyvideotrans(视频翻译配音工具)

语音识别选择faster-whisper(本地),模型选择预先下载并保存的medium,然后选择好要处理的视频以及保存到的位置,这里我选择了一个名为why not的英文演讲视频,保存在桌面_vedio_out文件下。将附件中faster-medium.7z 和 faster-small.7z解压到项目中的models目录下, 解压后,目录中应该存在 models--Systran--faster-whisper-small。en.m4a|.wav = 原始视频中的音频文件(包含所有背景音和人声)

西唯兵欧泡的博客 2341

EasyUI 动态添加tab

<div class="easyui-dialog" title="" style="width:400px;height:200px;" data-options=" iconCls:'icon-save', resizable:true, closable:false, draggable:false, modal:true">

mlxlong 937

QOpenGL入门教程(二)—— 第一个QOpenGLWidget程序

终于到了实际操作的环节了,这一章我们要做的是: 创建OpenGL窗口 创建并编写着色器程序 为着色器程序装配顶点数据 启动渲染管线进行绘图 第一步:创建新项目 首先,我们使用Qt创建一个常规的QWidget项目,建议不要勾选ui设计器(个人习惯,笔者不太习惯于使用ui来设计) 第二步:创建QOpenGLWidget并实现三个虚函数 QOpenGLWidget Qt5.4之前,Qt可以通过一个QGLWidget类来创建OpenGL窗口,但由于opengl的发展,在5.4版本的时候,Qt提供

ItaLink 1万+

实战教程:用YOLOv11+PyQt5打造工地安全帽检测系统(附完整数据集)

本文提供了一份完整的实战指南,详细介绍了如何利用YOLOv11目标检测模型与PyQt5界面库,从零开始构建一个智能工地安全帽检测桌面应用。内容涵盖高质量数据集的准备与标注、YOLOv11模型训练与调优,以及如何使用PyQt5开发流畅、专业的图形用户界面,最终实现一个可实际部署的AI安全监控系统。

plum99的博客 737

jQuery EasyUI 布局 - 动态添加标签页(Tabs)

在本教程中,我们将使用 iframe 动态地添加显示在一个页面上的 Tabs。当点击添加按钮,一个新的 tab 将被添加。如果 tab 已经存在,它将被激活。我们使用 'exists' 方法来判断 tab 是否已经存在,如果已存在则激活 tab。如果不存在则调用 'add' 方法来添加一个新的 tab 面板。这个 html 代码非常简单,我们创建了带有一个名为 'Home' 的 tab 面板的 Tabs。请注意,我们不需要写任何的 js 代码。您只需要调用 'add' 方法即可。步骤 1:创建 Tabs。

unber的博客 1090

切比雪夫插值

切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。

平和少年的博客 1646

easyui.Tree前后端工作

借助文档,建立界面双击获取界面代码如下: 二、动态tab 双击获取界面 页面的简单跳转: easyui.Tree前后端工作 一、项目搭建 准备好所需要的包: 连接和dao层:DBHelper帮助类: 二、树形表结构 数据库数据及表结构: 树表和自关联及无限级分类都是一个意思建立实体类 Model 五、service层开发 ModuleServlet: 六、前端页面 在原有的基础上增加: 七、总结 jar包和方法必须要有; 关闭资源的

m0_61148761的博客 789

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 375

STM32HAL库学习笔记九——LCD显示

本文不会对驱动编写做特别详细的描述,以记录CubeMX的部署流程为主。

weixin_44762233的博客 6918

为jQuery-easyui的tab组件添加右键菜单功能

为jQuery-easyui的tab组件添加右键菜单功能 2011-04-08 14:09 jQuery中的easyui插件包的tab标签组件,挺不错的,下面介绍如何为tab标签组件添加右键功能,效果图如下: 加入了右击TAB选项卡时显示关闭的上下文菜单 具体实现代码: 右键菜单 HTML:         关闭         全部关闭

liuzheng2684的专栏 5125

基于simulink的AI融合与深度学习控制的场景实例:基于强化学习的电动汽车能量管理策略优化仿真

本文介绍了基于强化学习的电动汽车能量管理策略优化仿真方法。通过Simulink构建包含驾驶循环输入、电池子系统、电机驱动系统和强化学习控制器的仿真模型,采用DQN等算法训练智能代理,设计奖励函数优化能量分配。详细说明了建模步骤和参数设置,包括环境定义、代理训练和性能评估指标。该方法能有效提升电动汽车的续航里程、电池寿命和能源利用效率,为智能能量管理系统设计提供参考。

xiaoheshang_123的博客 153

利用easyui实现 菜单节点和选项卡的联动效果

我们可以利用树实现菜单的显示,但是我们需要每点击一个菜单在右侧实现一个选项卡,这个就需要easyui里面的选项卡的功能 我们写一个代码 <%--创建选项卡容器--%> <div id="tt" class="easyui-tabs" style="width:500px;height:250px;" data-options="fit:true,border:true,plain:false,tabPosition:'top'"> <%--选项卡面板

一天不写代码难受的博客 950

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ztree的菜单显示与easyUI动态选项卡

一、使用ztree完成树状菜单栏显示(开发准备ztree开发包下载) 介绍:zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是zTree 最大优点。 (是jquery 插件 ,使用ztree 必须引入 jquery 的类库 ) 1、目录结构: api        使用文档说明 css       树样式文

u012814041的专栏 5867

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

EasyUi之Tabs(选项卡)

什么是Tabs 选项卡是最流行的导航模式之一(与菜单栏和垂直导航一样)。 选项卡最大的优点是用户很熟悉,而且经常是持久的内容,所以即使用户在网站或应用程序中跳出刚浏览过的内容,他们也不会迷失。 官方示例 成品示例 Tabs的使用案例 通过标签创建选项卡 通过标签可以更容易的创建选项卡,我们不需要写任何Javascript代码。只需要给 标签添加一个类ID’easyui-tabs’。每个选项卡面板都通过子 标签进行创建,用法和panel(面板)相同。 2. 通过Javascript

qianbihua00的博客 5150

轻松控制EasyUI-Tab选项卡

【项目概要】     项目中前台页面用的是EasyUI样式,用户登录后,左侧是导航栏,点击导航栏下的内容,在页面右侧显示的是具体内容。界面如下图所示:          【需求说明】     目前项目组长已经实现点击左侧导航菜单下的某个选项,界面右侧出现对应的选项卡内容。而我需要完成的需求是当再次点击右侧已打开的选项卡内容,会回到对应的选项卡内容,而不是总停留在最后打开的一项。

Dream it Possible 1万+

easyui后台界面如何添加选项卡(Tab)

easyui后台界面如何添加选项卡(Tab)

zys_1997的博客 2585

easyUI快速入门第四讲——easyUI中的tabs(选项卡)组件

tabs(选项卡)组件的概述 选项卡会显示一批面板,但在同一个时间只会显示一个面板。每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他自定义按钮。 tabs(选项卡)组件的使用 首先,在所在项目的WebContent目录下新建一个04-tabs目录,并在该目录下新建一个04-tabs.html页面。 <!DOCTYPE html> <html> <h...

李阿昀的博客 3017

easyui_tabs组件以及菜单关闭

easyui_tabs组件以及菜单关闭tabs组件静态数据的使用方法代码效果js创建的使用方法代码效果tabs的动态使用举例代码效果tabs的菜单关闭代码效果总结 tabs组件 选项卡显示一批面板。但在同一个时间只会显示一个面板 tabs的属性: tabs的事件: tabs的方法: 使用有两种方法: 静态数据的使用方法 通过标签创建选项卡 通过标签可以更容易的创建选项卡,我们不需要写任何Javascript代码。只需要给标签添加一个类ID 'easyui-tabs’。每个选项卡面板都通过子标签进行

m0_46699799的博客 771

tab选项卡实现

tab选项卡实现前言:效果图:代码右键点击关闭选项卡 前言: 选项卡的实现基于前面tree组件的实现,链接如下 [tree组件实现](https://blog.youkuaiyun.com/qq_46705598/article/details/106912698) [tree组件的后端](https://blog.youkuaiyun.com/qq_46705598/article/details/106891364) 效果图: 代码 界面代码,默认设置一个首页的tab页: <div id="booktabs" cla

qq_46705598的博客 606
上一篇: easyUI之tree组件实现思路之前端实现效果
下一篇: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are alread的错误
Jiang呀
博客等级 码龄7年 16粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值