为EasyUI的Tab标签添加右键菜单的方法


Posted in Javascript onJuly 14, 2012

前期的准备工作:
1、下载DEMO源码,并升级为最新版本(jquery 1.7.2,Easyui 1.2.6),直接替换就可以啦,升级easyui 是的要把css js theme 全部替换
2、在首页的HTML代码中:将

<div id="mm" class="easyui-menu" style="width:150px;"> 
<div id="mm-tabupdate">刷新</div> 
<div class="menu-sep"></div> 
<div id="mm-tabclose">关闭</div> 
<div id="mm-tabcloseall">全部关闭</div> 
<div id="mm-tabcloseother">除此之外全部关闭</div> 
<div class="menu-sep"></div> 
<div id="mm-tabcloseright">当前页右侧全部关闭</div> 
<div id="mm-tabcloseleft">当前页左侧全部关闭</div> 
<div class="menu-sep"></div> 
<div id="mm-exit">退出</div> 
</div>

改为:
<div id="mm" class="easyui-menu" style="width:150px;"> 
<div id="refresh">刷新</div> 
<div class="menu-sep"></div> 
<div id="close">关闭</div> 
<div id="closeall">全部关闭</div> 
<div id="closeother">除此之外全部关闭</div> 
<div class="menu-sep"></div> 
<div id="closeright">当前页右侧全部关闭</div> 
<div id="closeleft">当前页左侧全部关闭</div> 
<div class="menu-sep"></div> 
<div id="exit">退出</div> 
</div>

outlook2.js 中添加新方法如下:
function closeTab(action) 
{ 
var alltabs = $('#tabs').tabs('tabs'); 
var currentTab =$('#tabs').tabs('getSelected'); 
var allTabtitle = []; 
$.each(alltabs,function(i,n){ 
allTabtitle.push($(n).panel('options').title); 
}) 
switch (action) { 
case "refresh": 
var iframe = $(currentTab.panel('options').content); 
var src = iframe.attr('src'); 
$('#tabs').tabs('update', { 
tab: currentTab, 
options: { 
content: createFrame(src) 
} 
}) 
break; 
case "close": 
var currtab_title = currentTab.panel('options').title; 
$('#tabs').tabs('close', currtab_title); 
break; 
case "closeall": 
$.each(allTabtitle, function (i, n) { 
if (n != onlyOpenTitle){ 
$('#tabs').tabs('close', n); 
} 
}); 
break; 
case "closeother": 
var currtab_title = currentTab.panel('options').title; 
$.each(allTabtitle, function (i, n) { 
if (n != currtab_title && n != onlyOpenTitle) 
{ 
$('#tabs').tabs('close', n); 
} 
}); 
break; 
case "closeright": 
var tabIndex = $('#tabs').tabs('getTabIndex', currentTab); 
if (tabIndex == alltabs.length - 1){ 
alert('亲,后边没有啦 ^@^!!'); 
return false; 
} 
$.each(allTabtitle, function (i, n) { 
if (i > tabIndex) { 
if (n != onlyOpenTitle){ 
$('#tabs').tabs('close', n); 
} 
} 
}); 
break; 
case "closeleft": 
var tabIndex = $('#tabs').tabs('getTabIndex', currentTab); 
if (tabIndex == 1) { 
alert('亲,前边那个上头有人,咱惹不起哦。 ^@^!!'); 
return false; 
} 
$.each(allTabtitle, function (i, n) { 
if (i < tabIndex) { 
if (n != onlyOpenTitle){ 
$('#tabs').tabs('close', n); 
} 
} 
}); 
break; 
case "exit": 
$('#closeMenu').menu('hide'); 
break; 
} 
}

将js中tabCloseEven 方法 改为
function tabCloseEven() { 
$('#mm').menu({ 
onClick: function (item) { 
closeTab(item.id); 
} 
}); 
return false; 
}

这样就OK啦,代码比原来优雅多啦!
调用刷新,关闭当前标签时,就调用 closeTab(‘action') //action 可以为 refresh(刷新),close(关闭)
iframe 中使用时,要这么屎 top.closeTab('action');
点此下载最新的Easyui应用实例
Javascript 相关文章推荐
jquery 漂亮的删除确认和提交无刷新删除示例
Nov 13 Javascript
js跳转页面方法实现汇总
Feb 11 Javascript
jQuery给多个不同元素添加class样式的方法
Mar 26 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
Sep 15 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
Jquery easyui开启行编辑模式增删改操作
Jan 14 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
JS实现的添加弹出层并完成锁屏操作示例
Apr 07 Javascript
vue+webpack中配置ESLint
Nov 07 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
jQuery Tools tab(幻灯片)
Jul 14 #Javascript
jQuery Tools tab使用介绍
Jul 14 #Javascript
jQuery Tools Dateinput使用介绍
Jul 14 #Javascript
jQuery Tools tooltip使用说明
Jul 14 #Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 #Javascript
js点击页面其它地方将某个显示的DIV隐藏
Jul 12 #Javascript
JavaScript面向对象之Prototypes和继承
Jul 12 #Javascript
You might like
thinkphp配置连接数据库技巧
2014/12/02 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
python类继承用法实例分析
2014/10/10 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python调用命令行进度条的方法
2015/05/05 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python自动发微信监控报警
2019/09/06 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
用Python实现职工信息管理系统
2020/12/30 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
遗愿清单观后感
2015/06/09 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
Python经常使用的一些内置函数
2022/04/11 Python